#sql #ruby-on-rails #postgresql
#sql #ruby-on-rails #postgresql
Вопрос:
У меня есть таблица, подобная приведенной ниже
--- ---
| A | B |
--- ---
| 1 | 1 |
--- ---
| 2 | 1 |
--- ---
| 3 | 2 |
--- ---
| 4 | 2 |
--- ---
| 5 | 2 |
--- ---
Есть ли эффективный способ запроса к форме, подобной:
{1 => [1,2], 2 => [3,4,5]}
(сгруппируйте по B и выберите A как список)
Ответ №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