私はこのように見えるテーブルを持っています:
+-----+-----------+------------+
| id | value | date |
+-----+-----------+------------+
| id1 | 1499 | 2012-05-10 |
| id1 | 1509 | 2012-05-11 |
| id1 | 1511 | 2012-05-12 |
| id1 | 1515 | 2012-05-13 |
| id1 | 1522 | 2012-05-14 |
| id1 | 1525 | 2012-05-15 |
| id2 | 2222 | 2012-05-10 |
| id2 | 2223 | 2012-05-11 |
| id2 | 2238 | 2012-05-13 |
| id2 | 2330 | 2012-05-14 |
| id2 | 2340 | 2012-05-15 |
| id3 | 1001 | 2012-05-10 |
| id3 | 1020 | 2012-05-11 |
| id3 | 1089 | 2012-05-12 |
| id3 | 1107 | 2012-05-13 |
| id3 | 1234 | 2012-05-14 |
| id3 | 1556 | 2012-05-15 |
| ... | ... | ... |
| ... | ... | ... |
| ... | ... | ... |
+-----+-----------+------------+
value
私がやりたいのは、日付ごとにこのテーブルのすべてのデータの列の合計を生成することです。1日につき1つのエントリがありid
ます。問題は、一部のIDがすべての日の値を持っていないことです。たとえば、id2は日付の値を持っていません:2012-05-11
私がやりたいのは、特定の日付に特定のIDの値がない場合、合計で計算される前の日付(特定の日付にはるかに近い)の値です。
たとえば、上記のデータのみがあるとします。このクエリから、特定の日付のすべての値の合計を取得できます。
SELECT SUM(value) FROM mytable WHERE date='2012-05-12';
結果は次のようになります:1511 + 1089 = 2600
しかし、私が欲しいのは、この計算を行うクエリを作成することです:1511 + 2223 + 1089 = 4823
欠落した値の代わりに、日付2012-05-11の2223が追加されるようにします。id2
| id2 | 2223 | 2012-05-11 |
SQLクエリを使用してこれを行う方法を知っていますか?またはスクリプトを介して?例:python ..
私は日付ごとに数千のIDを持っているので、可能であればクエリを少し速くしたいと思います。