我有以下架构的答案表:累积计数超过日期,丢弃一些值
CREATE TABLE Answers
([id] int, [analyst_id] int, [date] date);
我要“累积计数”的分析师每月有多少答案了,丢弃前给出任何答案最后一个答案后的3个月。鉴于以下几点:
INSERT INTO Answers
([id], [analyst_id], [date])
VALUES
(1, 1, '2017/01/01'),
(2, 1, '2017/02/01'), -- should be discarded
(3, 1, '2017/03/01'), -- should be discarded
(4, 1, '2017/05/01'),
(5, 1, '2017/06/01'), -- should be discarded
(6, 1, '2017/07/01'), -- should be discarded
(7, 1, '2017/08/01'),
(8, 2, '2017/01/01'),
(9, 2, '2017/04/01'),
(10, 1, '2018/02/01'),
(11, 2, '2018/03/01');
预期的结果是:
analyst_id | month-year | count
-------------------------------
1 | 01/2017 | 1
1 | 02/2017 | 1
1 | 03/2017 | 1
1 | 04/2017 | 1
1 | 05/2017 | 2
1 | 06/2017 | 2
1 | 07/2017 | 2
1 | 08/2017 | 3
1 | 09/2017 | 3
1 | 10/2017 | 3
1 | 11/2017 | 3
1 | 12/2017 | 3
2 | 01/2017 | 1
2 | 02/2017 | 1
2 | 03/2017 | 1
2 | 04/2017 | 2
2 | 05/2017 | 2
2 | 06/2017 | 2
2 | 07/2017 | 2
2 | 08/2017 | 2
2 | 09/2017 | 2
2 | 10/2017 | 2
2 | 11/2017 | 2
2 | 12/2017 | 2
1 | 01/2018 | 0
1 | 02/2018 | 1
1 | 03/2018 | 1
2 | 01/2018 | 0
2 | 02/2018 | 0
2 | 03/2018 | 1
DBMS是SQL Server 2012
编辑
我写这拨弄着我目前的半解决方案:http://sqlfiddle.com/#!6/c2e82e/5
每年,计数需要重置。
最后一个答案在2017-08。我不明白为什么它会根据你的规则被丢弃。 –
我的不好。糟糕的解释。 在回答(8月)之前,最后一次接受的是7月份。下一个可接受的答案将在十月份。 –
您在查询中遇到什么问题? – Dinesh