私は以下の表を持っている:PostgreSQLの別のテーブルから日付範囲+前の日付を生成するには?
links
:
created_at active
2017-08-12 15:46:01 false
2017-08-13 15:46:01 true
2017-08-14 15:46:01 true
2017-08-15 15:46:01 false
日付範囲を指定したとき、私はアクティブリンクが等しいか、現在よりも小さい日付で作成されたどのように多くの私に告げる時系列を抽出する必要があり(ローリング)日付。 (日付範囲2017年8月12日のために - 2017年8月17日)
出力:
day count
2017-08-12 0 (there are 0 active links created on 2017-08-12 and earlier)
2017-08-13 1 (there is 1 active link created on 2017-08-13 and earlier)
2017-08-14 2 (there are 2 active links created on 2017-08-14 and earlier)
2017-08-15 2 ...
2017-08-16 2
2017-08-17 2
私は日付を生成するための次のクエリを思い付いた:
SELECT date_trunc('day', dd):: date
FROM generate_series
('2017-08-12'::timestamp
, '2017-08-17'::timestamp
, '1 day'::interval) dd
しかし、ローリングカウントは私を混乱させ、どのように続行するかわかりません。これはウィンドウ関数で解決できますか?
はい、穴がありますが、いくつかの日がありません。当時の私は、存在する最新の前回の日付を数えなければなりません。 –