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

基于Y值优先于N值的SQL分组聚合实现需求

解决方案

需求

按ID分组聚合:同一ID同时存在Y和N值时,优先输出Y;仅存在N值时输出N。

原始数据

IDValue
1Y
1N
2N
3Y
4Y
4N

期望结果

IDValue
1Y
2N
3Y
4Y

方法一:利用字符排序特性(简洁高效)

SELECT ID, MAX(Value) AS Value
FROM your_table
GROUP BY ID;

原理:字符Y的ASCII码(89)大于N(78),分组后取Value的最大值,会自动优先返回Y;当分组内只有N时,自然返回N。

方法二:显式条件判断(逻辑清晰)

可以用存在性判断:

SELECT 
    ID,
    CASE 
        WHEN EXISTS (SELECT 1 FROM your_table t2 WHERE t2.ID = t1.ID AND t2.Value = 'Y') THEN 'Y'
        ELSE 'N'
    END AS Value
FROM your_table t1
GROUP BY ID;

也可以用计数统计:

SELECT 
    ID,
    CASE 
        WHEN SUM(CASE WHEN Value = 'Y' THEN 1 ELSE 0 END) > 0 THEN 'Y'
        ELSE 'N'
    END AS Value
FROM your_table
GROUP BY ID;

原理:通过判断分组内是否存在Y值,存在则返回Y,否则返回N,逻辑更直白,适合需要明确业务规则的场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:01:14