Rails / データを時間単位で集計する
13時、14時、15時とか、時間単位でログ集計が見たい時、あると思います。
ExampleLog というモデルがあるとします。
タイムゾーンはシドニーを指定してみました。
ruby
1
2
3
logs = ExampleLog.group("date_part('hour', timezone('Australia/Sydney', example_logs.created_at))").count
これでこんな感じのデータが手に入るはず。
1
2
3
4
5
6
7
8
9
[
{ 1: 123 },
{ 2: 13 },
{ 3: 33 },
{ 4: 433 },
.
.
.
]
date_part
便利だねー。
以上ですー。
参考
PostgreSQL: Documentation: 9.5: Date/Time Functions and Operators