我有2个查询要与之比较。

SELECT COUNT(*) FROM form GROUP BY person_id;

SELECT COUNT(*) FROM form WHERE status IS NULL GROUP BY person_id;

如果两个结果相等,那么我想显示它。否则,我就不这样做,因为我对仅以NULL结果作为状态而不是1个或多个完整状态的用户的结果感兴趣。

举例来说,假设有3个用户。

用户1仅具有非NULL的状态。

用户2具有3个状态,分别为NULL和3个非NULL状态。

用户3具有NULL的6个状态。

然后我想要的是用户3的完整行。

非常感谢您的帮助。

最佳答案

HAVING子句与CASE EXPRESSION一起使用:

SELECT person_id,count(*) as cnt FROM form t
GROUP BY person_id
HAVING COUNT(*) = COUNT(CASE WHEN status IS NULL THEN 1 END)

关于mysql - MySQL:聚集数据,在一定条件下聚集相同的数据,然后检查是否相等并保存在结果集中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52740546/

10-14 13:02
查看更多