我正在查询按日期查询一组数据,但前提是过去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
另外,用您正在使用的数据库标记您的问题。 –