SELECT date_trunc('hour', date1) AS hour_stump
, (extract(minute FROM date1)::int / 5) AS min5_slot
, count(*)
FROM table1
GROUP BY 1, 2
ORDER BY 1, 2;
GROUP BY
できます 2つの列:時間に切り捨てられたタイムスタンプと5分のスロット。
この例では、スロット0 - 11
が生成されます 。 1
を追加します 1 - 12
をご希望の場合 。extract()
の結果をキャストしました 整数に変換するため、除算/ 5
小数桁を切り捨てます。結果:
分0-4->スロット0
分5-9->スロット1
など
このクエリは、値が見つかった5分のスロットの値のみを返します。 everyの値が必要な場合 スロットまたはランニングサムが必要な場合 5分以上のスロットについては、次の関連する回答を検討してください:
- PostgreSQL:クエリの行数を「分単位」で実行