按列分组并选择其他列作为rails中的列表

问题描述 投票:1回答:1

我有一张像波纹管一样的桌子

+---+---+
| A | B |
+---+---+
| 1 | 1 |
+---+---+
| 2 | 1 |
+---+---+
| 3 | 2 |
+---+---+
| 4 | 2 |
+---+---+
| 5 | 2 |
+---+---+

是否有一种有效的方式来查询形式:

{1 => [1,2], 2 => [3,4,5]}

(按B分组并选择A作为列表)

sql ruby-on-rails postgresql
1个回答
1
投票

你可以使用string_agg()功能

select B,string_agg(A,', ') 
from tablename
group by B

或者你可以使用array_agg()

select B,array_agg(A) 
from tablename
group by B
© www.soinside.com 2019 - 2024. All rights reserved.