sql >> Database teknologi >  >> RDS >> PostgreSQL

Skinner 5:grupper poster efter DateTime-feltet i trævisning

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

den udsender:

-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. Hvordan kan jeg se/ændre indstillingerne for timeout for MySQL-forbindelsen?

  2. mysql_real_escape_string og array_map returnerer tomme strenge?

  3. En betinget SQL-opdateringssætning for to tabeller på én gang

  4. Mysql seneste rekord for særskilt kolonne