You need to enable JavaScript to run this app. 如何使用ANSI SQL对GROUP BY分组结果行进行合并统计?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ANSI SQL对GROUP BY分组结果行进行合并统计?

实现方案

你可以通过CASE表达式先对需要合并的COMMISSION_PCT值做映射转换,再做分组聚合即可,完全符合ANSI SQL标准,兼容所有支持标准SQL的数据库。

方法1:子查询写法(可读性更高)

SELECT 
    mapped_commission_pct AS COMMISSION_PCT,
    COUNT(*) AS `COUNT(*)`
FROM (
    SELECT
        -- 按照需求映射佣金比例
        CASE
            WHEN COMMISSION_PCT = 0.25 THEN 0.20
            WHEN COMMISSION_PCT = 0.35 THEN 0.30
            ELSE COMMISSION_PCT
        END AS mapped_commission_pct
    FROM EMPLOYEES
) AS t
GROUP BY mapped_commission_pct;

方法2:直接分组写法(无需子查询)

如果你不想写子查询,也可以直接把CASE逻辑同时写在SELECT和GROUP BY子句中,执行效果完全一致:

SELECT
    CASE
        WHEN COMMISSION_PCT = 0.25 THEN 0.20
        WHEN COMMISSION_PCT = 0.35 THEN 0.30
        ELSE COMMISSION_PCT
    END AS COMMISSION_PCT,
    COUNT(*) AS `COUNT(*)`
FROM EMPLOYEES
GROUP BY
    CASE
        WHEN COMMISSION_PCT = 0.25 THEN 0.20
        WHEN COMMISSION_PCT = 0.35 THEN 0.30
        ELSE COMMISSION_PCT
    END;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 14:54:05