【发布时间】:2021-06-13 09:50:47
【问题描述】:
我正在尝试确定自季度开始以来查询数据集以仅计算个人一次的最佳方式。这是数据集:
Year | Qtr | Week | Name
2021 1 1 John Smith
2021 1 3 John Smith
2021 2 14 John Smith
2021 1 1 Julie Johnson
2021 1 2 Julie Johnson
2021 1 3 John Jacobs
我需要能够返回一个数据集,该数据集告诉我每周的唯一身份人数以及季度至今的唯一身份人数:
结果集:
Year | Qtr | Week | Week Count | Rolling QTR Count
2021 1 1 2 2
2021 1 2 1 2
2021 1 3 2 3
2021 2 14 1 1
我曾尝试使用窗口函数进行计数,但我无法弄清楚如何仅在滚动时间范围内计算某人。
【问题讨论】:
-
您使用的是哪个 dbms?
-
SQL Server 2012
-
什么是滚动季度?您还说本季度至今。对我来说,这些是不同的事情 - 滚动季度要么是“过去 90 天,每天”,要么是“自 3 个月前的同一天开始,每天”(请注意,因为在月末跳跃,例如 2 月 28 日回到 11 月 28 日但 3 月 1 日然后跳过 11 月 29 日和 30 日),但 qtd 是“自本季度开始以来,每天”,这是一个长达 92 天的可变长度窗口
标签: sql sql-server sql-server-2012 window-functions rolling-computation