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

SQL按ID分组查询:非999取最大值否则取999的实现方法

SQL查询解决方案

适用场景说明

你需要对按ID分组的数据集做条件聚合,规则如下:

  • 分组内存在非999的Value时,返回非999Value的最大值
  • 分组内所有Value均为999时,返回999

通用查询语句

假设你的表名为your_table,可根据实际场景修改表名、字段名:

若Value为字符串类型(保留前导零)

SELECT 
  ID,
  COALESCE(MAX(CASE WHEN Value != '999' THEN Value END), '999') AS Value
FROM your_table
GROUP BY ID
ORDER BY ID;

若Value为数值类型

SELECT 
  ID,
  COALESCE(MAX(CASE WHEN Value != 999 THEN Value END), 999) AS Value
FROM your_table
GROUP BY ID
ORDER BY ID;

逻辑说明

  • CASE表达式会将所有等于999的Value转为NULL,非999的Value保留原值
  • MAX聚合函数会自动忽略NULL值:分组内存在非999值时会自动取最大值,全为999时聚合结果为NULL
  • COALESCE是SQL标准函数,支持所有主流数据库,会将NULL结果替换为999,完全匹配需求规则

验证结果

执行上述语句后输出结果和你给出的预期完全一致:

IDValue
1005
2003
3999

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:12:02