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

按单列分组并获取所有不重复元素的实现方法

按colA分组获取colB的不重复值

原始数据:

colA  colB  
-----------  
a     apple  
a     grape  
a     apple  
a     apple  
b     lion  
b     tiger  

一、输出展开的去重结果

要得到每个colA对应的不重复colB行,用以下两种方式即可实现:

方法1:使用DISTINCT去重

SELECT DISTINCT colA, colB
FROM your_table
ORDER BY colA, colB;

方法2:使用GROUP BY去重

SELECT colA, colB
FROM your_table
GROUP BY colA, colB
ORDER BY colA, colB;

执行后得到结果:

a apple  
a grape  
b lion  
b tiger  

二、输出聚合为数组格式的结果

不同数据库的聚合函数语法有差异,以下是主流数据库的实现方式:

MySQL

SELECT 
  colA, 
  CONCAT('[', GROUP_CONCAT(DISTINCT colB SEPARATOR ','), ']') AS colB_list
FROM your_table
GROUP BY colA;

PostgreSQL

SELECT 
  colA, 
  '[' || array_to_string(ARRAY_AGG(DISTINCT colB ORDER BY colB), ',') || ']' AS colB_list
FROM your_table
GROUP BY colA;

SQL Server

SELECT 
  colA, 
  '[' + STRING_AGG(DISTINCT colB, ',') + ']' AS colB_list
FROM your_table
GROUP BY colA;

执行后得到结果:

a [apple,grape]  
b [lion,tiger]  

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:01:24