我使用的数据集,看起来像这样的工作:的Oracle SQL - 总结时间序列划分基础上每月
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
我想向计列添加到计数数量的数据集在当前MTD之后,某个ID已激活('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。我如何修改案例陈述的第一行?
谢谢
瑞恩·巴克
也许只是为了'通过MTD desc'的ID后,在中? – xQbert