2011-09-28 101 views
1

在Postgres 8.3中,我需要按數組字段中的某些元素進行分組。當我按照陣列本身分組時,會顯示所有可能的組合。我只想按元素分組。按PostgreSQL中的數組元素分組

像這樣的作品尋找一個元素的計數:

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

這將返回正確的計數單個數組中的元素。如何爲數組中的所有元素返回多個計數?如果我按數組進行分組,它將按照它們存儲的相同順序使用所有數組元素(而不是我需要的)。

編輯爲清楚: 酒吧是像{FOO,一些事情}或{FOO,事情}或值的數組{一些事情,否則}

我想知道有多少記錄有foo,some,thing等元素的值,然後在數組「bar」中。

回答

0

嗯..你不能由值組..但當然的值是一個包含它... 所以..你可能想這列:

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

應該工作。 。

+0

這並不爲我工作。如果bar = {f,o,o}你的例子是:SELECT AVG(),f FROM f WHERE f = any(bar)group by f – Josh

1

喜歡的東西

GROUP BY bar[4] 
+0

這是實際的語法嗎?我運行8.3,並沒有得到它與您的語法工作。我會用更好的例子更新我的問題。 – Josh