我正在查詢按日期查詢一組數據,但前提是過去7天的條件爲真。有條件的窗口函數sql
喜歡的東西,
SELECT
category_name,
entity_id
FROM table_name
WHERE
condition_1 = True
AND date_id <= current_date AND date_id >= current_date - 7
但我想在同一時間查詢了多個日期ID的窗口。
比方說,我有
2016-01-01, foo, 123, True
2015-12-31, foo, 123, False
2015-12-26, foo, 123, True
2015-12-31, bar, 12345, False
並有日期,我會加入對諸如
2015-01-01,
2015-01-02,
...
的標準表,因爲我的第一個表不會必然對每個
一天一個紀錄我期望的結果是
2016-01-01, foo, 123, True
2016-12-31, foo ,123, True
2016-12-30, foo ,123, True
2016-12-29, foo ,123, True
2016-12-28, foo ,123, True
2016-12-27, foo ,123, True
2016-12-26, foo ,123, True
由於這些是過去7天條件1爲真的日期。什麼是最好的方法來做到這一點?我試過類似
SUM(condition_1) OVER (ORDER BY date_id
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)
隨着加入日期表(以確保我總是有一個dateid填充)。但是,我不確定這是否是最好的實現,並且我沒有得到正確的結果(仍在調試)。
我不明白你的例子。你從4行開始,然後得到7? –
是的,我需要加入日期表(虐待試圖編輯我的帖子有點清晰),因爲我的初始表不會有每個日期的記錄。 – jfalkson
另外,用您正在使用的數據庫標記您的問題。 –