DB2数据库列数据聚合咨询:合并重复地址/州的人员与车辆数量
解决重复地址/州记录的聚合问题
嘿,我懂你那种“差一步就搞定”的纠结!咱们直接针对你的需求,用sum()来完成重复记录的人员、车辆数量聚合,不管你用的是Python Pandas还是SQL,都给你清晰的方案:
核心思路
本质就是按「地址+州」这两个唯一标识分组,然后对每组的人员数、车辆数分别求和,把重复记录合并成一行聚合结果。
方案1:Python Pandas(数据分析常用)
假设你的数据存在Pandas DataFrame里,字段比如是address、state、person_count、vehicle_count,代码示例如下:
import pandas as pd # 替换成你的实际数据框名/数据源 df = pd.read_csv("your_data.csv") # 分组聚合:保留地址和州作为普通列,对人员/车辆数求和并重命名 aggregated_df = df.groupby( by=['address', 'state'], as_index=False # 关键:不让分组列变成索引,保留为常规列 ).agg( total_people=('person_count', 'sum'), total_vehicles=('vehicle_count', 'sum') ) # 查看聚合后的结果 print(aggregated_df.head())
小提示:如果还有其他需要保留的关联字段(比如城市),只需要把它加入groupby的列表里就行,分组逻辑会自动适配。
方案2:SQL(数据库场景)
如果你的数据存在数据库表中,用SQL的GROUP BY配合SUM()就能直接实现:
SELECT address, state, SUM(person_count) AS total_people, SUM(vehicle_count) AS total_vehicles FROM your_table_name -- 替换成你的实际表名 GROUP BY address, state;
注意:不同数据库对GROUP BY的语法要求基本一致,如果需要按地址排序结果,可以在最后加ORDER BY address, state。
如果你之前的尝试差在哪?大概率是没把地址和州同时作为分组键——只按其中一个分组的话,还是会有重复;或者是没正确指定要聚合的目标字段。现在这个方案应该能直接解决你的问题啦!
内容的提问来源于stack exchange,提问作者Chris Simmons
相关产品推荐
相关产品推荐

