【发布时间】:2019-05-16 21:35:03
【问题描述】:
我想获取数组中每个元素的计数。我正在使用postgres。 我有数组 [1,2,3,1,1,2]。如何将这些数组元素与每个元素进行比较。
输出将是:
数组元素 | 计数
1 | 3
2 | 2
3 | 1
【问题讨论】:
标签: arrays postgresql counter
我想获取数组中每个元素的计数。我正在使用postgres。 我有数组 [1,2,3,1,1,2]。如何将这些数组元素与每个元素进行比较。
输出将是:
数组元素 | 计数
1 | 3
2 | 2
3 | 1
【问题讨论】:
标签: arrays postgresql counter
你可以使用unnest:
SELECT array_elem, COUNT(*) AS cnt
FROM t, unnest(c) s(array_elem)
GROUP BY array_elem
ORDER BY array_elem;
【讨论】:
应用于单个值(不是表列):
SELECT i, count(*) AS cnt
FROM unnest('{1,2,3,1,1,2}'::int[]) i
GROUP BY i
ORDER BY i;
unnest() 是一个集合返回函数,又名“表函数”。您基本上可以将它用作SELECT 查询中的表。
【讨论】: