次のコードは、日付とカウントレコードを1日ごとに生成します。PostgreSQLで数日間GROUP BYする方法は?
SELECT ts, COUNT(DISTINCT(user_id)) FROM
(SELECT current_date + s.ts FROM generate_series(-20,0,1) AS s(ts))
AS series(ts)
LEFT JOIN messages
ON messages.created_at::date = ts
GROUP BY ts
ORDER BY ts
出力は次のようになります。
2011-07-07 0
2011-07-08 0
2011-07-09 0
2011-07-10 0
2011-07-11 0
2011-07-12 94
2011-07-13 56
2011-07-14 35
2011-07-15 56
2011-07-16 0
2011-07-17 13
結果が重なるようにどのようにして、2日間でグループにそれを修正するのでしょうか?別々のuser_idを毎日カウントする代わりに、2日ごとに異なるuser_idをカウントします。
これは2日のカウントを合計するのとは異なります。これは、user_idを2日間ごとに1回だけカウントする必要があるためです。
PostgreSQL 8.3での作業
ありがとうございました。
シンプルだったことを!ありがとう! –