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

如何在SQL中使用GROUP_CONCAT()获取不重复拼接值:按月份、地区分组提取唯一快递代码

解决GROUP_CONCAT重复拼接快递代码的问题

嘿,这问题我之前处理过,其实改一行代码就搞定了!你只需要在GROUP_CONCAT()函数里加上DISTINCT关键字,就能让它自动过滤掉重复的快递代码,只保留每组里唯一的值再拼接。

问题根源

你原来的SQL里,GROUP_CONCAT(Courier)会把分组内所有的Courier记录都拼接起来,哪怕同一个快递代码出现多次,所以City2的分组才会出现DTDC,DTDC,DTDC的冗余结果。

修改后的SQL语句

SELECT Pincode, Month, City, State, SUM(Total_orders) AS Total_orders, GROUP_CONCAT(DISTINCT Courier) AS CourierType 
FROM table1 
GROUP BY Pincode, Month, City, State

另外补充一点:我把City和State也加到了GROUP BY子句里,这是因为在严格的SQL模式(比如MySQL的ONLY_FULL_GROUP_BY)下,SELECT里的非聚合字段必须出现在GROUP BY中,这样能避免潜在的逻辑错误和语法报错。

执行后结果

修改后执行,你就能得到期望的输出:

MonthCityStatePincodeCourierTypeTotal_orders
1City1State1110021DTDC,GA50000
2City1State1110021DTDC10000
1City2State2110029DTDC60000

这个方案在大数据量场景下也适用,因为DISTINCT在分组内的去重操作效率很高,不会造成额外的性能瓶颈。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:22:41