Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PostgreSQL中按数组的元素分组_Sql_Arrays_Postgresql_Group By - Fatal编程技术网

在PostgreSQL中按数组的元素分组

在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

在Postgres 8.3中,我需要在数组字段中按某些元素分组。当我按数组本身分组时,会显示所有可能的组合。我只想按元素分组

类似这样的方法用于查找单个元素的计数:

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,但无法使它与您的语法一起工作。我将用一个更好的例子更新我的问题。