Группировка по элементу массива в PostgreSQL - PullRequest
1 голос
/ 29 сентября 2011

В Postgres 8.3 мне нужно группировать по определенным элементам в поле массива. Когда я группирую по самому массиву, отображаются все возможные комбинации. Я хочу группировать только по элементу.

что-то вроде этого работает для нахождения количества элементов:

SELECT count(*)
FROM table
WHERE foo=any(bar)

это вернет правильное количество для одного элемента в массиве. Как вернуть несколько счетчиков для всех элементов в массиве? Если я сгруппируюсь по массиву, он будет использовать все элементы массива в том же порядке, в котором они хранятся (не то, что мне нужно).

отредактируйте для ясности: bar это массив со значениями вроде {foo, some, thing} или {foo, thing} или {some, thing, else}

Я хочу знать, сколько записей имеют значение элемента foo, some, thing и др. В массиве "bar".

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Что-то вроде

GROUP BY bar[4]
0 голосов
/ 29 сентября 2011

Хм .. вы не можете сгруппировать по значению .. но, конечно, это столбец, который его содержит ... Итак .. вы можете захотеть это:

SELECT AVG(blah), foo
FROM whatever
WHERE foo=any(bar)
GROUP BY foo

должно работать ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...