将不同的值连接到一个组中

Han*_*ana 2 sql postgresql

我有这样的数据:

Group   Provider
A       ABC
A       DEF
B       DEF
B       HIJ
Run Code Online (Sandbox Code Playgroud)

我想像这样转换数据:

Group ProviderList
A      ABC, DEF
B      DEF, HIJ
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用类似的方法,concat(select distinct...)但不确定这是否是最好的方法

SELECT distinct
  group, 
  CONCAT(select distinct provider from data)
FROM data 
GROUP BY 1
Run Code Online (Sandbox Code Playgroud)

小智 7

Laurenz 对 string_agg() 的含义如下

SELECT
  group, 
  STRING_AGG(Provider,',') as ProviderList
FROM data 
GROUP BY 1
Run Code Online (Sandbox Code Playgroud)

您也可以选择使用:

STRING_AGG(provider,',' order by Provider)
Run Code Online (Sandbox Code Playgroud)