gpt4 book ai didi

sql - PostgreSQL:获取数组中指定元素的出现次数

转载 作者:行者123 更新时间:2023-11-29 11:43:18 29 4
gpt4 key购买 nike

我需要计算数组中指定元素的出现次数,例如:

elem_occurrences_count(ARRAY[a,b,c,a,a], a) = 3

elem_occurrences_count(ARRAY[a,b,c], d) = 0

PostgreSQL中有没有什么函数可以用来解决这个问题?感谢您的帮助。

最佳答案

您需要取消嵌套数组,然后计算出现次数。

with elements (element) as (
select unnest(ARRAY['a','b','c','a','a'])
)
select count(*)
from elements
where element = 'a';

这可以很容易地嵌入到函数中:

create or replace function count_elements(elements text[], to_find text)
returns bigint
as
$body$
select count(*)
from unnest(elements) element
where element = to_find;
$body$
language sql;

更新

从 Postgres 9.5 开始,这也可以使用 array_positions() 来完成,它返回找到元素的位置数组。该数组的长度是出现的次数:

select cardinality(array_positions(ARRAY['a','b','c','a','a'], 'a'));

关于sql - PostgreSQL:获取数组中指定元素的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26523438/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com