【发布时间】:2018-06-23 16:34:36
【问题描述】:
我目前正在使用此查询(在 SQL Server 中)来计算每天唯一项目的数量:
SELECT Date, COUNT(DISTINCT item)
FROM myTable
GROUP BY Date
ORDER BY Date
我如何转换它以获取每个日期过去 3 天中唯一项目的数量(包括当天)?
输出应该是一个包含 2 列的表格: 一列包含原始表中的所有日期。在第二列,我们有每个日期的唯一项目数。
例如,如果原始表是:
Date Item
01/01/2018 A
01/01/2018 B
02/01/2018 C
03/01/2018 C
04/01/2018 C
通过上面的查询,我目前得到了每天的唯一计数:
Date count
01/01/2018 2
02/01/2018 1
03/01/2018 1
04/01/2018 1
我希望获得 3 天滚动窗口内的唯一计数:
Date count
01/01/2018 2
02/01/2018 3 (because items ABC on 1st and 2nd Jan)
03/01/2018 3 (because items ABC on 1st,2nd,3rd Jan)
04/01/2018 1 (because only item C on 2nd,3rd,4th Jan)
【问题讨论】:
标签: sql sql-server count aggregate-functions sliding-window