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

MS SQL Server 统计分组后所有值均为指定值的组数量

MS SQL Server筛选组内所有指定字段值均为固定值的分组实现方法

核心判断逻辑为:按fruit字段分组后,组内不存在number字段值不等于2139的记录,符合条件的分组返回水果名称及计数1即可。

写法1:MIN/MAX聚合判断(性能最优)

利用最值特性筛选,若分组内number的最小值和最大值均等于2139,说明组内所有值都是2139:

SELECT 
  fruit,
  1 AS count
FROM 
  替换为实际表名
GROUP BY 
  fruit
HAVING 
  MIN(number) = 2139 
  AND MAX(number) = 2139

写法2:计数对比判断(逻辑直观)

对比分组总记录数和符合条件的记录数,两者相等则说明所有记录都满足要求:

SELECT 
  fruit,
  1 AS count
FROM 
  替换为实际表名
GROUP BY 
  fruit
HAVING 
  COUNT(*) = COUNT(CASE WHEN number = 2139 THEN 1 END)

写法3:NOT EXISTS子查询(语义清晰)

直接判断当前水果分组下不存在不符合要求的记录:

SELECT DISTINCT
  t1.fruit,
  1 AS count
FROM 
  替换为实际表名 t1
WHERE 
  NOT EXISTS (
    SELECT 1 
    FROM 替换为实际表名 t2 
    WHERE t2.fruit = t1.fruit 
      AND t2.number <> 2139
  )

以上三种写法均可得到你预期的输出结果,可根据实际表数据量选择合适的方案。

内容的提问来源于stack exchange,提问作者a.WOL7

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:15:04