PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Rails 5:grupuj rekordy według pola DateTime w widoku drzewa

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

to wyprowadza:

-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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. python pip zainstalować błąd instalacji psycopg2

  2. Sequelize upsert() nigdy nie aktualizuje i tylko wstawia

  3. Jak połączyć się ze zdalną bazą danych PostgreSQL przez SSL za pomocą Pythona?

  4. PHP nie może połączyć się z PostgreSQL na CentOS 7

  5. Jak zapobiec usunięciu pierwszego wiersza w tabeli (PostgreSQL)?