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

SQL Server中替换ROLLUP分组生成的NULL值问题求助

解决ROLLUP分组后Col_2列NULL值替换问题

针对你使用GROUP BY ROLLUP生成的汇总行中Col_2列出现NULL的情况,可以通过窗口函数结合COALESCE函数将NULL替换为对应分组的实际值,以下是修改后的SQL语句:

SELECT 
    col_1,
    COALESCE(col_2, MAX(col_2) OVER(PARTITION BY col_1)) AS col_2,
    col_3,
    SUM(col_4) AS col_4,
    SUM(col_5) AS col_5,
    SUM(col_6) AS col_6
FROM your_table
GROUP BY ROLLUP(col_1, col_2, col_3)

原理说明

  • MAX(col_2) OVER(PARTITION BY col_1):在同一个col_1分组内,获取所有非空的col_2值(示例中同一col_1=A下的col_2均为B,所以MAX结果为B)。
  • COALESCE(col_2, ...):如果当前行的col_2是NULL(即ROLLUP生成的汇总行),就用窗口函数获取到的值替换,否则保留原col_2值。

执行该语句后,汇总行的Col_2会被替换为对应分组的实际值,符合你需要的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:50:24