sql >> データベース >  >> RDS >> PostgreSQL

Rails 5:ツリービューのDateTimeフィールドでレコードをグループ化する

    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]}" } } } }
    

    出力:

    -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. REDOロググループとファイルとメンバーの理解

    2. 整数を文字列としてデータベースに格納することの欠点

    3. PL / SQL:プロシージャでユーザー入力を促すにはどうすればよいですか?

    4. MySQLASキーワード