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

SQL如何从多组记录中筛选对应Number字段全部为Null的分组数据

SQL查询实现:筛选分组内指定字段全为NULL的分组

原始表结构与数据

NameNumber
A1
ANULL
A2
BNULL
BNULL

预期输出

NameNumber
BNULL

需求说明

筛选出所有Number字段取值全部为NULL的Name分组,每个符合条件的分组仅返回一条记录即可。

标准SQL实现(适配MySQL、PostgreSQL、SQL Server、Oracle等绝大多数主流数据库)

SELECT Name, MAX(Number) AS Number
FROM 替换为你的表名
GROUP BY Name
HAVING COUNT(Number) = 0;

逻辑说明

  • COUNT(字段名)计数时会自动忽略NULL值,若某个Name分组下所有Number都是NULL,计数结果就为0
  • MAX(Number)对全为NULL的分组返回结果就是NULL,刚好匹配预期输出的Number字段值
  • 若仅需要返回Name字段不需要返回Number,可简化为SELECT Name FROM 替换为你的表名 GROUP BY Name HAVING COUNT(Number) = 0

可选实现(更适配复杂筛选场景)

SELECT DISTINCT t1.Name, NULL AS Number
FROM 替换为你的表名 t1
WHERE NOT EXISTS (
    SELECT 1 
    FROM 替换为你的表名 t2 
    WHERE t2.Name = t1.Name AND t2.Number IS NOT NULL
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:57:04