Rails / データを時間単位で集計する

13時、14時、15時とか、時間単位でログ集計が見たい時、あると思います。

ExampleLog というモデルがあるとします。
タイムゾーンはシドニーを指定してみました。


logs = ExampleLog.group("date_part('hour', timezone('Australia/Sydney', example_logs.created_at))").count

    
これでこんな感じのデータが手に入るはず。

[
{ 1: 123 },
{ 2: 13 },
{ 3: 33 },
{ 4: 433 },
.
.
.
]

date_part 便利だねー。
以上ですー。

参考

PostgreSQL: Documentation: 9.5: Date/Time Functions and Operators

PostgreSQL: date_part Function

何かありましたらコメントをどうぞ

comments powered by Disqus

人気の記事

950 Points チリ出身のギタリストが弾くドラゴンボールZがむちゃくちゃかっこいい…
774 Points Wordpress + Heroku + PostgreSQL + Amazon S3 = ¥0 / 無料でサイト運営
700 Points Rubyのチートシート 変数 / クラス / モジュール
524 Points Rubyのチートシート / アクティブサポート
451 Points 紙のデザイナーがウェブ開発できるようになるまでに必要なこと
435 Points Rails / Google Analyticsのデータを使って分析や管理画面のためのグラフをつくる
323 Points RailsとHerokuでノーティフィケーションをプッシュする / PusherとTurbolinksの兼ね合い
222 Points Rails / RSpec テスト書いたことない メンドクサイ(n´Д`)という時のチートシート
193 Points Rails / Ajaxを使って画面遷移しない一時保存機能をつける
193 Points Protractorでスクレイピングしてみた