我要将人的图像保存在一张桌子中,一个人将有多张图像,每张图像的状态为1或0,我们需要根据图像状态获取记录。如果某人记录的图像状态为全1,那么我们需要考虑该记录,如果任何状态为0,则需要从结果中跳过该记录
Original Result
id psqno status
1 1 1
2 1 1
3 1 0
4 2 1
5 2 1
6 3 1
7 3 0
8 4 1
9 4 1
Expected Result
id psqno status
1 2 1
2 4 1
我尝试过如下查询:
select count(distinct psqno) as image_record from users where status = 1
我想获取所有状态均为1的图像的结果计数。
答案 0 :(得分:0)
您可以使用条件聚合来查找不存在其他状态的组:
SELECT psqno
FROM t
GROUP BY psqno
HAVING COUNT(CASE WHEN status = 1 THEN 1 END) = COUNT(*) -- all rows have status = 1