PostgreSQL:如何连接行

DBE*_*BE7 6 sql postgresql

所以,我有一个非常规的问题。我希望能够将具有相同 ID 的行连接成一大行。为了说明我的问题,让我举一个例子。这是查询:

SELECT b.id AS "ID",
       m.content AS "Conversation"
FROM bookings b 
INNER JOIN conversations c on b.id = c.conversable_id AND c.conversable_type = 'Booking'
INNER JOIN messages m on m.conversation_id = c.id
WHERE b.state IS NOT NULL
GROUP BY 1,2
LIMIT 1000;
Run Code Online (Sandbox Code Playgroud)

这是输出:

ID     **Conversation
1223    "blah, blah, blah, blah"
1223    " ... blaaaah, blah.."
1223    "more blaaah"
1223    "last blah"
5000    "new id, with more blah"
5000    "and the blah continues"
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以将对话行连接成一个聚合行,同时保留 ID?

像这样:

ID     Conversation
1223    "blah, blah, blah, blah, ... blaaaah blah.. more blaaah, last blah"
5000    "new id, with more blah and the blah continues"
Run Code Online (Sandbox Code Playgroud)

我确信有一种有效的方法可以做到这一点。我只是自己无法弄清楚。

DBE*_*BE7 6

通过查看这个问题的精彩答案,我能够解决自己的问题。就像使用 PostgreSQLstring_agg()函数一样简单。