1
根據規劃,我有一個運行一夜的工作流程。有時會成功,有時不會。當它失敗時,我想知道有多少天它一直KO,但沒有它預計不會兩行之間的區別,忽略一些行
之日起計算,我有以下輸入數據:
ID Date Status
1 20170616 KO
1 20170615 OK
1 20170614 OK
1 20170613 OK
1 20170612 KO
1 20170611 NO RUN
1 20170610 NO RUN
1 20170609 KO
1 20170608 OK
1 20170607 KO
1 20170506 OK
NO RUN意味着它沒有運行,但它是預期的。
而且我想:
ID Date Status NbDayKO
1 20170616 KO 1
1 20170615 OK 0
1 20170614 NO RUN 0
1 20170613 OK 0
1 20170612 KO 2
1 20170611 NO RUN 1
1 20170610 NO RUN 1
1 20170609 KO 1
1 20170608 OK 0
1 20170607 KO 1
1 20170606 OK 0
我總是每天一行。如有必要,可以刪除NO RUN行,從而導致日期跳轉。
我可以用主導函數得到最後一天的OK,但是我沒有計算出沒有計算NO RUN天數的差異。
我試圖做一筆帶:
sum(
CASE WHEN Status = 'KO' THEN 1
WHEN Status = 'NO RUN' THEN 0
ELSE NULL
END) over(partition by idStatus order by date)
我預計它重置價值就遇到OK
每次NULL但sum
函數忽略NULL
我也嘗試過其他一些東西,主要基於分析查詢,但沒有成功。
任何想法如何做到這一點?
感謝您的幫助。
簡單而簡單,正是我所需要的。謝謝。 – Ismedriel