0

我有一个结构如下的表:

profile   |  tag
-------------------------
p1        | tag1
p1        | tag2
p1        | tag3
p2        | tag1
p2        | tag3

我想运行一个返回如下内容的查询:

tag1, tag2, tag3
tag1, tag3

基本上,对于每个唯一的配置文件,表中存在一个标签列表。

这可能吗,还是我需要在我关心的每个标签的结果中都有一个唯一的列?

谢谢!

4

1 回答 1

2

这将返回您想要的:

SELECT array_agg(tag)
FROM table1
GROUP BY profile

或者 :

SELECT string_agg(tag, ',')
FROM table1
GROUP BY profile

string_agg让我们指定所需的分隔符并对每行中的结果进行排序。

SQLFIDDLE DEMO

于 2013-11-06T22:05:30.247 回答