【发布时间】:2020-04-12 05:10:24
【问题描述】:
我找不到具有这些特征的类似问题,如果重复,我将关闭该问题。
假设我在 PostgreSQL 数据库中有下表:
| serverdate | colA | colB | colC | colD
|-------------------------------------------
0 | 2019-12-01 | a | OK | 10 | string1
1 | 2019-12-02 | a | OK | 10 | string2
2 | 2019-12-02 | a | NOK | 100 | string3
3 | 2019-12-01 | b | OK | 0 | string1
4 | 2019-12-03 | b | OK | 1 | string1
5 | 2019-12-05 | c | NOK | 0 | string2
5 | 2019-12-07 | d | OK | 10 | string3
5 | 2019-12-08 | d | EX | 1000 | string4
5 | 2019-12-12 | e | OK | 1 | string5
我想选择适用以下条件的所有行(我不知道如何准确地表达这个条件,一个例子更清楚):
对于 colA 中的所有组,检查 colB 中是否存在 NOK。如果分组中有任何 NOK,则不要选择该组的任何行
例如,对于提到的表,结果将是:
| serverdate | colA | colB | colC | colD
|-------------------------------------------
3 | 2019-12-01 | b | OK | 0 | string1
4 | 2019-12-03 | b | OK | 1 | string1
5 | 2019-12-07 | d | OK | 10 | string3
5 | 2019-12-08 | d | EX | 1000 | string4
5 | 2019-12-12 | e | OK | 1 | string5
关于如何进行此查询的任何想法?建议使用简单。
提前致谢!
【问题讨论】:
标签: sql postgresql grouping