我使用的數據集,看起來像這樣的工作:的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