我有一张table:
+----+-------+-------------+
| id | code | value_check |
| 1 | p-01 | OK |
| 2 | p-01 | NOT OK |
| 3 | p-01 | OK |
| 4 | p-02 | OK |
| 5 | p-02 | OK |
| 6 | p-02 | OK |
+----+-------+-------------+
如何选择有哪些记录 'OK'
按代码分组,但如果有一个或多个 'NOT OK'
在值检查时,则不需要选择
预期结果:
code
p-02
我尝试过我的查询可以得到结果,但它非常慢这是我的查询:
SELECT code FROM table
WHERE code
NOT IN (SELECT code FROM table
WHERE value_check = 'NOT OK' GROUP BY code)
GROUP BY code
还有别的解决办法吗?
3条答案
按热度按时间ldxq2e6h1#
使用条件聚合尝试以下操作
您也可以尝试使用相关子查询:
演示
n53p2ov02#
ddrv8njm3#
检查总计数是否等于值为的行数
OK
使用HAVING
条款。查询
在此处查找演示