PG db に次のようなテーブルがあります。
id | widget_id | for_date | score |
参照される各ウィジェットには、これらのアイテムが多数あります。ウィジェットごとに常に 1 日 1 つですが、ギャップがあります。
私が取得したいのは、X 以降の各日付のすべてのウィジェットを含む結果です。日付は、生成シリーズを介して取り込まれます。
SELECT date.date::date
FROM generate_series('2012-01-01'::timestamp with time zone,'now'::text::date::timestamp with time zone, '1 day') date(date)
ORDER BY date.date DESC;
指定された widget_id の日付のエントリがない場合は、前のものを使用したいと考えています。したがって、ウィジェット 1337 には 2012-05-10 のエントリがなく、2012-05-08 にはエントリがない場合、結果セットに 2012-05-10 の 2012-05-08 エントリも表示する必要があります。
Actual data:
widget_id | for_date | score
1312 | 2012-05-07 | 20
1337 | 2012-05-07 | 12
1337 | 2012-05-08 | 41
1337 | 2012-05-11 | 500
Desired output based on generate series:
widget_id | for_date | score
1336 | 2012-05-07 | 20
1337 | 2012-05-07 | 12
1336 | 2012-05-08 | 20
1337 | 2012-05-08 | 41
1336 | 2012-05-09 | 20
1337 | 2012-05-09 | 41
1336 | 2012-05-10 | 20
1337 | 2012-05-10 | 41
1336 | 2012-05-11 | 20
1337 | 2012-05-11 | 500
最終的には、これをビューに要約して、簡単にクエリできる 1 日あたりの一貫したデータ セットを取得したいと考えています。
編集:サンプルデータと予想される結果セットをより明確にしました