You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计所有图片状态均为1的人员记录数量

解决方法:统计所有图片状态均为1的人员数量

我来帮你搞定这个问题!你的需求是找出所有图片的status都为1的psqno,然后统计这类人员的数量,而你当前的查询语句并没有排除那些存在status=0的psqno,所以得调整一下写法。

问题分析

你的原始查询select count(distinct psqno) as image_record from users where status = 1会把只要有一张图片status=1的psqno都算进去,但像psqno=1和3这类存在status=0的记录也会被统计,这不符合你的需求。我们需要的是完全没有status=0记录的psqno。

正确的查询方法

这里提供两种可靠的实现方式:

方法1:使用NOT EXISTS子查询

这种方式直接检查每个psqno是否不存在status=0的记录:

SELECT COUNT(DISTINCT psqno) AS image_record
FROM users u1
WHERE NOT EXISTS (
    SELECT 1
    FROM users u2
    WHERE u2.psqno = u1.psqno
      AND u2.status = 0
);

原理:遍历每一条记录对应的psqno,只有当该psqno下没有任何status=0的图片时,才会被纳入统计。

方法2:使用分组+HAVING子句

利用status只有0和1的特性,统计每个psqno的最小status值,如果最小值是1,说明该psqno下所有图片的status都是1:

SELECT COUNT(*) AS image_record
FROM (
    SELECT psqno
    FROM users
    GROUP BY psqno
    HAVING MIN(status) = 1
) AS valid_psqnos;

原理:先按psqno分组,筛选出分组内最小status为1的psqno(也就是没有0的分组),再统计这些分组的数量。

结果验证

根据你提供的原始数据,psqno=2和4符合条件,所以上述两个查询都会返回2,和你的期望结果一致。

内容的提问来源于stack exchange,提问作者user3668438

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:07:28