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

如何统计仅含NULL/空值Status字段的唯一用户ID

解决方案

方法一:NOT EXISTS子查询

先定位所有存在非NULL/非空Status记录的用户,再排除这些用户,统计剩余唯一用户数:

SELECT COUNT(DISTINCT user_id) AS user_count
FROM table a
WHERE NOT EXISTS (
    SELECT 1
    FROM table b
    WHERE b.user_id = a.user_id
      AND b.status IS NOT NULL
      AND b.status != ''
)

方法二:GROUP BY + HAVING聚合判断

按用户分组,校验该用户的所有Status要么是NULL要么是空串:

SELECT COUNT(user_id) AS user_count
FROM (
    SELECT user_id
    FROM table
    GROUP BY user_id
    HAVING MAX(CASE WHEN status IS NOT NULL AND status != '' THEN 1 ELSE 0 END) = 0
) AS valid_users

关键说明

  • 两种方法都能精准筛选出所有记录Status全为NULL/空值的用户,自动排除像示例中1、2这类存在有效Status的用户。
  • 若业务中空值仅指NULL(无空字符串场景),可删除AND status != ''条件适配。
  • 性能层面:如果表上有user_id + status的复合索引,NOT EXISTS通常更快;GROUP BY方式在大表场景下也能稳定运行,可根据实际索引情况选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:34:56