gpt4 book ai didi

mysql - 查明 SQL 表是否存在没有 "flagged"记录的条目

转载 作者:行者123 更新时间:2023-11-29 12:31:35 24 4
gpt4 key购买 nike

我有一个 MySQL 地址表,其中包含以下列:

STATE, ZIPCODE, FLAG

给定的州/邮政编码组合可以有多行。我想确保对于每个给定的 state/zipcode 组合,恰好有一行具有 FLAG = 'P'

我知道如何检查多行:

SELECT state, zipcode, flag, count(*) as numrecs
FROM addresses
WHERE flag = 'P'
group by state, zipcode
having numrecs > 1;

如何检查零条目 - 没有 flag = 'P' 行的 state/zipcode 组合?

最佳答案

您的方向是正确的,只需使用条件聚合即可:

SELECT state, zipcode, flag, count(*) as numrecs
FROM addresses
GROUP BY state, zipcode
HAVING coalesce(sum(flag = 'P'), 0) <> 1

或者,如果您愿意的话:

HAVING coalesce(sum(flag = 'P'), 0) = 0 or sum(flag = 'P') > 1

需要 coalesce() 以防 flag 可以为 NULL 并且给定的州/邮政编码组合只有 NULL 标志。

关于mysql - 查明 SQL 表是否存在没有 "flagged"记录的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27412552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com