На основе таблице построить другую

Рейтинг: 0Ответов: 1Опубликовано: 11.05.2023

Я хочу сгруппировать данные в таблице по определнному признаку. Например у меня есть таблица order с полями

  • id (int)
  • name (str)
  • region (int)

и мне надо получить таблицу вида

  • region (int)
  • [order]

Я конечно могу получить все кортежи order и уже в питоне обработать, но может можно как-то через sql это сделать. Даже незнаю как такое гуглить. Буду рад любой информации

Ответы

▲ 1Принят

Не совсем понятно, что нужно получить в результате, но возможно вам подойдет фунция PostgreSQL ARRAY_AGG()

Т.е. в вашем случае запрос может быть вида

SELECT region, ARRAY_AGG(id) AS order_ids FROM "order" GROUP BY region

В результате у вас в первом столбец будет идентификатор региона, а во втором массив из id заказов сделанных в этом регионе.