Sql 检查数组元素是否多次出现
有没有办法检查整数数组中出现多次的元素?如果存在冗余,则布尔值为False或出现问题的元素列表将起作用。Sql 检查数组元素是否多次出现,sql,arrays,postgresql,unnest,Sql,Arrays,Postgresql,Unnest,有没有办法检查整数数组中出现多次的元素?如果存在冗余,则布尔值为False或出现问题的元素列表将起作用。unnest()数组,然后使用分组依据和具有和计数() SELECT un.n FROM unnest('{1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 10}'::integer[]) un (n) GROUP BY un.n HAVING count(*) > 1; 要仅获取布尔值,可以在子查询中使用EXISTS和上面的
unnest()
数组,然后使用分组依据和具有和计数()
SELECT un.n
FROM unnest('{1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 10}'::integer[]) un (n)
GROUP BY un.n
HAVING count(*) > 1;
要仅获取布尔值,可以在子查询中使用EXISTS
和上面的内容
SELECT EXISTS (SELECT un.n
FROM unnest('{1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 10}'::integer[]) un (n)
GROUP BY un.n
HAVING count(*) > 1);
unnest()
数组,然后使用groupby
和HAVING
和count()
过滤出现多次的值
SELECT un.n
FROM unnest('{1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 10}'::integer[]) un (n)
GROUP BY un.n
HAVING count(*) > 1;
要仅获取布尔值,可以在子查询中使用EXISTS
和上面的内容
SELECT EXISTS (SELECT un.n
FROM unnest('{1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 10}'::integer[]) un (n)
GROUP BY un.n
HAVING count(*) > 1);
如果已安装,如果有重复项,则返回false
:
icount(your_array) = icount(uniq(your_array))
如果不是,那么我将使用unnest()
返回false
,以防重复
select count(unnest) = count(distinct unnest)
from your_table
cross join lateral unnest(your_array)
如果已安装,如果有重复项,则返回false
:
icount(your_array) = icount(uniq(your_array))
如果不是,那么我将使用unnest()
返回false
,以防重复
select count(unnest) = count(distinct unnest)
from your_table
cross join lateral unnest(your_array)