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

如何修改SQL Server查询以新增col2列数值合计的汇总行

SQL Server查询新增汇总行解决方案

你可以通过以下两种方式修改原有查询实现需求:


方法1:使用UNION ALL拼接汇总行

逻辑直观易理解,无需修改原有分组逻辑,适配所有SQL Server版本:

SELECT 
    col1, 
    COUNT(*) AS col2, 
    CASE 
        WHEN col1 = 'aaa' THEN 'xxx'
        WHEN col1 = 'bbb' THEN 'yyy'
        WHEN col1 = 'ccc' THEN 'zzz'
        ELSE 'ttt'
    END AS col3
FROM table1
GROUP BY col1

UNION ALL

-- 拼接汇总统计行
SELECT
    'sum' AS col1,
    COUNT(*) AS col2,
    'sum of values in col2' AS col3
FROM table1

方法2:使用GROUP BY ROLLUP实现(效率更高)

利用SQL Server原生ROLLUP聚合特性,仅需一次表扫描即可生成结果,性能更优:

SELECT
    ISNULL(col1, 'sum') AS col1,
    COUNT(*) AS col2,
    CASE
        -- 判断当前行是否为汇总行,优先返回汇总提示
        WHEN GROUPING_ID(col1) = 1 THEN 'sum of values in col2'
        WHEN col1 = 'aaa' THEN 'xxx'
        WHEN col1 = 'bbb' THEN 'yyy'
        WHEN col1 = 'ccc' THEN 'zzz'
        ELSE 'ttt'
    END AS col3
FROM table1
GROUP BY ROLLUP(col1)

说明:GROUP BY ROLLUP(col1)会自动在原有分组结果后新增汇总行,该行的col1值默认为NULL,通过ISNULL和GROUPING_ID函数即可替换为期望的汇总标识文本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:36:05