要计算数组中值的频率,可以使用标准SQL中的一些函数和操作符。以下是一个示例解决方法:
假设有一个名为"numbers"的表,其中包含一个名为"values"的数组字段。要计算数组中每个值的频率,可以按照以下步骤进行操作:
UNNEST
函数将数组展开为一个表。SELECT value
FROM numbers, UNNEST(values) AS value
GROUP BY
和COUNT
函数计算每个值的频率。SELECT value, COUNT(*) AS frequency
FROM numbers, UNNEST(values) AS value
GROUP BY value
完整的示例代码如下所示:
CREATE TABLE numbers (
values INTEGER[]
);
INSERT INTO numbers (values)
VALUES
(ARRAY[1, 2, 3, 4, 4, 5]),
(ARRAY[1, 1, 2, 2, 3, 3, 3]);
SELECT value, COUNT(*) AS frequency
FROM numbers, UNNEST(values) AS value
GROUP BY value;
上述代码将返回以下结果:
value | frequency
-------+-----------
1 | 3
2 | 2
3 | 4
4 | 2
5 | 1
这表示数组中的值1出现了3次,值2出现了2次,值3出现了4次,以此类推。
下一篇:标准SQL-求列中数组的总和