在Postgres 8.3中,我需要按数组字段中的某些元素进行分组。当我按阵列本身分组时,会显示所有可能的组合。我只想按元素分组。
这样的东西可用于查找单个元素的计数:
SELECT count(*)
FROM table
WHERE foo=any(bar)
这将返回数组中单个元素的正确计数。如何为数组中的所有元素返回多个计数?如果我按数组进行分组,它将按照存储的相同顺序使用所有数组元素(不是我需要的)。
为清晰起见编辑: bar是一个数组,其值为{foo,some,thing}或{foo,thing}或{some,thing,else}
我想知道在数组“bar”中有多少记录的元素值为foo,some,thing和else。
答案 0 :(得分:1)
像
这样的东西GROUP BY bar[4]
答案 1 :(得分:0)
嗯..你不能按值分组..但当然值是包含它的列... 所以..你可能想要这个:
SELECT AVG(blah), foo
FROM whatever
WHERE foo=any(bar)
GROUP BY foo
应该有效..