抱歉,如果有人回答了这个问题,但试图说出这个问题是让我头疼的噩梦。
基本上我有一张桌子
post_id | tag_id |
---|---|
15618 | 6 |
15618 | 109 |
15618 | 659 |
27248 | 245 |
27248 | 6 |
27248 | 7 |
27248 | 6499 |
我本质上想要一个返回的查询
post_id | tag_id |
---|---|
15618 | 6, 109, 659 |
27248 | 245, 6, 7, 6499 |
答案 0 :(得分:2)
我强烈建议您为此目的使用数组:
select post_id, array_agg(tag_id order by tag_id)
from t
group by post_id;
如果你真的想要一个字符串,你可以使用 string_agg(tag_id, ', ' order by tag_id)
。不过,总的来说,我发现数组的用途要广泛得多。