You need to enable JavaScript to run this app. 如何按分组类别聚合交易数据并将同组去重内容合并至对应单元格
优惠活动
大模型
产品
解决方案
定价
更多

如何按分组类别聚合交易数据并将同组去重内容合并至对应单元格

同组去重字段拼接的分组聚合实现

实现这个需求的核心步骤非常直接,没有多余的复杂逻辑:

  • 按指定分组字段(比如示例里的Name)拆分全量明细数据,把同字段值的记录归为一组
  • 对每组内的关联字段(比如示例里的City)取值做去重处理,过滤重复值
  • 把每组去重后的字段值按指定分隔符拼成连续字符串,作为分组对应的汇总值(比如示例里的City_Summary列)

业务办公端(Excel/WPS Power Query 实现)

  1. 将明细数据导入Power Query编辑器
  2. 选中作为分组依据的字段列,点击菜单栏的「分组依据」
  3. 切换为高级分组模式,新增聚合计算项:
    • 新列名设为City_Summary
    • 聚合操作选择「所有行」,生成存储组内明细的临时列
  4. 新增自定义列,输入公式实现去重拼接:Text.Combine(List.Distinct(临时明细列[City]), "、")
  5. 删除临时明细列,将处理结果导出回工作表即可

Python 数据处理端(pandas 实现)

可直接适配常规交易明细处理需求的复用代码:

import pandas as pd

# 替换为本地实际的交易明细文件路径
df_detail = pd.read_excel("交易明细数据.xlsx")

# 按Name分组,对组内City值去重后拼接生成汇总列
df_summary = (
    df_detail
    .groupby("Name", as_index=False)
    .agg(
        City_Summary=("City", lambda values: "、".join(values.unique()))
    )
)

# 导出最终的分组汇总结果
df_summary.to_excel("分组汇总输出.xlsx", index=False)

数据库端(标准SQL实现)

兼容主流关系型数据库、数仓环境的查询逻辑:

适配MySQL 8.0+、PostgreSQL、Hive 等常用环境

SELECT
    Name,
    -- 对组内City值去重后按顿号拼接
    STRING_AGG(DISTINCT City, '、') AS City_Summary
FROM 交易明细数据表
GROUP BY Name

注意:旧版MySQL环境不支持在聚合函数内直接使用DISTINCT,可先通过子查询过滤同组下重复的Name、City组合,再执行聚合拼接操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.12 17:45:04