PostgreSQL:如何连接行

时间:2016-08-03 21:02:40

标签: sql postgresql

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

{{mymodel.a + mymodel.b}}

这是输出:

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;

有没有办法在保留ID的同时将会话行连接成一个聚合行?

像这样:

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"

我确信有一种有效的方法可以做到这一点。我无法自己解决这个问题。

1 个答案:

答案 0 :(得分:0)

通过查看this question的精彩答案,我能够解决自己的问题。它就像使用PostgreSQL string_agg() - 函数一样简单。