Итак, у меня есть таблица, которую я группирую, используя другие столбцы, такие как почтовые индексы, и я хочу объединить некоторые строки и узнать, какой их тип, довольно легко сделать с помощью функции агрегирования строк "string_agg (отличныйcolumn, ',' order by column)
Проблема в том, что при этом я не знаю, сколько строк каждого типа агрегируется
Так что, если моя таблица выглядит следующим образом:
column A
Banana
Monkey
Banana
Thailand
Banana
Monkey
Моя текущая агрегация возвращает поле с [Банан, Обезьяна, Таиланд]
Когда на самом деле я бы хотел, чтобы мой вывод на том же поле был [3 Банан, 2 Обезьяна, 1Таиланд]
мой текущий неработающий запрос агрегирования выглядит примерно так:
create table test as select count(a.*), STRING_AGG(cnt::text || ' ' || col, ', ' order by col), a.postcode, a.geom
FROM tablewithdata a,
(select col, COUNT(*) AS cnt, postcode, geom FROM tablewithdata
GROUP BY col, postcode, geom) x
group by a.postcode, a.geom
Возможно ли достичь этого результата?