计算一个数组的数量

时间:2019-05-16 21:35:04

标签: arrays postgresql counter

我想获取数组中每个元素的计数。我正在使用postgres。 我有数组[1,2,3,1,1,2]。如何将这些数组元素与每个元素进行比较。

输出为:

array_element | 计数


1 | 3

2 | 2

3 | 1

2 个答案:

答案 0 :(得分:1)

您可以使用unnest

SELECT array_elem, COUNT(*) AS cnt
FROM t, unnest(c) s(array_elem)
GROUP BY array_elem
ORDER BY array_elem;

db<>fiddle demo

答案 1 :(得分:1)

要应用于单个值(而不是表列):

SELECT i, count(*) AS cnt
FROM   unnest('{1,2,3,1,1,2}'::int[]) i
GROUP  BY i
ORDER  BY i;

unnest()是一个返回设置的函数,又称为“表函数”。您基本上可以像在SELECT查询中的表一样使用它。

相关问题