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