使用两列执行GROUP BY是否可行?PO与站点数据汇总遇问题
问题解答
核心原因:分组字段选择错误
你遇到的问题本质是把和PO并非一一对应的字段(承包商、日期)加入了分组条件,导致工具无法正确合并同一个PO的行数据。
具体分析
- 当你按「PO编号+站点+承包商+日期」这类组合分组时,工具会将这些字段的所有值组合都视为独立分组。比如同一个PO下有2条不同日期的记录,就会被拆成2个分组,最终输出2行结果,而不是合并成1行求和。
- 你要的是「PO编号+站点」层级的汇总,这两个字段和PO的求和结果是一一对应的,而承包商、日期属于PO下的明细字段,不能和汇总维度放在同一分组里。
正确的操作方式
数据库SQL场景
只保留需要汇总的维度字段作为分组条件,对求和字段用聚合函数:
SELECT PO编号, 站点, SUM(行金额) AS PO总金额 FROM 你的数据表 GROUP BY PO编号, 站点;
Excel透视表场景
- 行标签仅添加「PO编号」和「站点」
- 值区域添加需要求和的字段,设置为「求和」类型
- 不要将承包商、日期等明细字段放入行/列标签或筛选器中
补充说明
如果需要同时展示PO的明细信息(比如承包商、日期),不能直接和汇总结果放在同一行——因为一个PO对应多个明细值。你可以选择:
- 单独做一张明细表格和汇总表分开展示
- 用字符串聚合函数(比如SQL里的
GROUP_CONCAT(承包商))将同一PO下的承包商合并成一个字符串,但这会改变汇总表的用途,需根据实际需求判断。
内容的提问来源于stack exchange,提问作者Danielle Barrett
相关产品推荐
相关产品推荐

