在PostgreSQL中按数组的元素分组
在Postgres 8.3中,我需要在数组字段中按某些元素分组。当我按数组本身分组时,会显示所有可能的组合。我只想按元素分组 类似这样的方法用于查找单个元素的计数:在PostgreSQL中按数组的元素分组,sql,arrays,postgresql,group-by,Sql,Arrays,Postgresql,Group By,在Postgres 8.3中,我需要在数组字段中按某些元素分组。当我按数组本身分组时,会显示所有可能的组合。我只想按元素分组 类似这样的方法用于查找单个元素的计数: SELECT count(*) FROM table WHERE foo=any(bar) 这将返回数组中单个元素的正确计数。如何为数组中的所有元素返回多个计数?如果我按数组分组,它将按照存储的相同顺序使用所有数组元素,而不是我需要的 为清晰起见,请编辑: bar是一个数组,其值为{foo,some,thing}或{foo,thi
SELECT count(*)
FROM table
WHERE foo=any(bar)
这将返回数组中单个元素的正确计数。如何为数组中的所有元素返回多个计数?如果我按数组分组,它将按照存储的相同顺序使用所有数组元素,而不是我需要的
为清晰起见,请编辑:
bar是一个数组,其值为{foo,some,thing}或{foo,thing}或{some,thing,else}
我想知道数组栏中有多少条记录的元素值为foo、some、thing和else。Hm。。不能按值分组。。当然,值是包含它的列。。。 所以您可能需要:
SELECT AVG(blah), foo
FROM whatever
WHERE foo=any(bar)
GROUP BY foo
应该有用..类似
GROUP BY bar[4]
那对我不起作用。如果bar={f,o,o},你的例子是:从f=anybar的任何地方选择AVG,f,按fis分组,这是实际语法吗?我正在运行8.3,但无法使它与您的语法一起工作。我将用一个更好的例子更新我的问题。