sql >> Database >  >> RDS >> PostgreSQL

Rails 5:records groeperen op DateTime-veld in boomstructuur

samples = 100.times.map { |n| { id: n, time: rand(10000).hours.ago } }

data = samples.group_by { |rec| rec[:time].to_date }.group_by { |d, _| d.at_beginning_of_month }.group_by { |m, _| m.at_beginning_of_year }

data.sort_by(&:first).each { |y, recs| puts "-#{y.year}"; recs.sort_by(&:first).each { |m, recs| puts "  -#{m.strftime '%B'}"; recs.sort_by(&:first).each { |d, recs| puts "    -#{d.day}"; recs.each { |rec| puts "      id: #{rec[:id]}" } } } }

het geeft uit:

-2015
  -November
    -13
      id: 32
    -16
      id: 41
    -19
      id: 4
    -20
      id: 39
    -21
      id: 86
  -December
    -4
      id: 68
    -7
      id: 35
    -8
      id: 98
    -22
      id: 10
    -27
      id: 77
-2016
  -January
    -10
      id: 37
    -19
      id: 67
    -31
      id: 85
  -February
    -2
      id: 78
    -13
      id: 89
    -16
      id: 75
    -17
      id: 36
      id: 99
    -22
      id: 28
  -March
    -9
      id: 7
    -11
      id: 66
    -16
      id: 59
    -26
      id: 18
    -29
      id: 8
  -April
    -2
      id: 3
    -8
      id: 69
    -9
      id: 60
    -11
      id: 2
    -12
      id: 33
    -15
      id: 26
    -17
      id: 17
      id: 46
    -19
      id: 13
    -22
      id: 12
    -24
      id: 64
    -27
      id: 50
    -29
      id: 14
    -30
      id: 43
  -May
    -25
      id: 82
    -26
      id: 11
  -June
    -3
      id: 72
    -8
      id: 92
    -14
      id: 25
    -19
      id: 15
    -22
      id: 95
    -23
      id: 56
    -26
      id: 80
    -27
      id: 87
    -29
      id: 19
  -July
    -1
      id: 6
    -2
      id: 81
    -3
      id: 1
    -6
      id: 88
    -7
      id: 65
    -15
      id: 91
    -17
      id: 27
    -20
      id: 38
    -26
      id: 73
  -August
    -1
      id: 0
    -7
      id: 30
    -8
      id: 79
    -15
      id: 9
    -23
      id: 24
    -25
      id: 21
  -September
    -1
      id: 52
    -7
      id: 48
    -9
      id: 34
    -10
      id: 54
      id: 55
    -22
      id: 70
    -27
      id: 23
    -29
      id: 94
  -October
    -2
      id: 22
    -7
      id: 51
    -23
      id: 63
    -24
      id: 57
      id: 62
    -28
      id: 58
      id: 76
    -29
      id: 90
    -31
      id: 49
  -November
    -5
      id: 5
      id: 45
    -6
      id: 61
    -9
      id: 93
    -12
      id: 83
    -13
      id: 71
    -16
      id: 53
    -17
      id: 29
    -21
      id: 44
    -23
      id: 84
  -December
    -9
      id: 31
    -13
      id: 16
    -14
      id: 47
    -16
      id: 42
    -17
      id: 20
      id: 96
    -18
      id: 97
    -19
      id: 74
    -23
      id: 40



  1. Sla nieuwe positie van RecyclerView-items op in SQLite nadat ze zijn gesleept en neergezet

  2. hoe een update van een tabelrijwaarde te activeren met behulp van een rijwaarde uit een andere tabel in Apex Oracle SQL?

  3. Verbinding maken met MySQL die op Docker draait vanaf de hostcomputer

  4. Loop MySQL om gegevens in de tabel in te voegen