我正在使用如下所示的数据集:
MTD | ID | Active
-----------------------
01-APR-16 | A | y
01-MAY-16 | A | y
01-JUN-16 | A | n
01-JUL-16 | A | y
01-AUG-16 | A | n
01-APR-16 | B | n
01-MAY-16 | B | y
01-JUN-16 | B | y
01-JUL-16 | B | y
01-AUG-16 | B | y
我想在数据集中添加一个计数列,用于计算ID在当前MTD之后的活动次数(' y')。所需的输出是:
MTD | ID | Active | COUNT
-------------------------------
01-APR-16 | A | y | 2
01-MAY-16 | A | y | 1
01-JUN-16 | A | n | 1
01-JUL-16 | A | y | 0
01-AUG-16 | A | n | 0
01-APR-16 | B | n | 4
01-MAY-16 | B | y | 3
01-JUN-16 | B | y | 2
01-JUL-16 | B | y | 1
01-AUG-16 | B | y | 0
我想到的问题是:
SELECT
MTD,
ID,
ACTIVE,
SUM(CASE WHEN MTD > (current records MTD)
AND ACTIVE = 'y' THEN 1 ELSE 0 END)
OVER (PARTITION BY ID)
as COUNT
我不确定如何将每个记录的MTD与窗口总和中当前记录的MTD进行比较。如何修改案例陈述的第一行?
谢谢,
Ryan Barker