DB2中如何在查询中同时返回聚合函数结果与其他列值?
DB2聚合查询报错解决及示例
你遇到的SQL返回码-122,核心原因是:当SELECT语句包含聚合函数(如SUM())时,所有未被聚合的列必须出现在GROUP BY子句中,否则DB2无法确定非聚合列与聚合结果的关联逻辑。
以下分两种常见场景给出正确示例:
场景1:按指定列分组求和
如果需要按Column 2分组,计算每组的数值列总和,需添加GROUP BY子句:
SELECT SUM(num_column) AS total_sum, column_2 FROM your_table GROUP BY column_2;
(注:将num_column、column_2、your_table替换为实际的列名和表名)
场景2:获取全局总和+每条记录的其他字段
如果不需要分组,只想同时显示整个表的数值列总和,以及每条记录的Column 2等字段,可使用窗口函数SUM() OVER():
SELECT SUM(num_column) OVER() AS global_total, num_column, column_2 FROM your_table;
这个查询中,global_total会返回所有记录的num_column总和,同时保留每条记录的原始字段值。
内容的提问来源于stack exchange,提问作者Daniel Christian
相关产品推荐
相关产品推荐

