【发布时间】:2020-05-25 20:26:49
【问题描述】:
下表代表给定测试的结果。
同一测试的每个结果要么通过 (error_id=0) 要么失败 (error_id 0) 我需要帮助来编写一个查询,该查询返回自上次良好运行以来的运行次数 (error_id= 0) 和日期。
|日期 | test_id | error_id | ---------------------------------- | 2019-12-20 | 123 | 23 | 2019-12-19 | 123 | 23 | 2019-12-17 | 123 | 22 | 2019-12-18 | 123 | 0 | 2019-12-16 | 123 | 11 | 2019-12-15 | 123 | 11 | 2019-12-13 | 123 | 11 | 2019-12-12 | 123 | 0所以这个例子的结果应该是:
| 2019-12-18 | 123 | 4因为测试 123 在 2019 年 12 月 18 日通过,这发生在 4 次运行前。
我有一个查询来确定给定的运行是否错误,但我无法对其应用适当的窗口函数来获得想要的结果
选择 test_id, Date, error_id, (CASE WHEN error_id 0 THEN 1 ELSE 0 END) as is_error 从测试结果【问题讨论】:
标签: sql postgresql window-functions