На основе таблице построить другую
Я хочу сгруппировать данные в таблице по определнному признаку. Например у меня есть таблица order с полями
- id (int)
- name (str)
- region (int)
и мне надо получить таблицу вида
- region (int)
- [order]
Я конечно могу получить все кортежи order и уже в питоне обработать, но может можно как-то через sql это сделать. Даже незнаю как такое гуглить. Буду рад любой информации
Ответы (1 шт):
Автор решения: Vladimir Ignatenko
→ Ссылка
Не совсем понятно, что нужно получить в результате, но возможно вам подойдет фунция PostgreSQL ARRAY_AGG()
Т.е. в вашем случае запрос может быть вида
SELECT region, ARRAY_AGG(id) AS order_ids FROM "order" GROUP BY region
В результате у вас в первом столбец будет идентификатор региона, а во втором массив из id заказов сделанных в этом регионе.