Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查数组元素是否多次出现_Sql_Arrays_Postgresql_Unnest - Fatal编程技术网

Sql 检查数组元素是否多次出现

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和上面的

有没有办法检查整数数组中出现多次的元素?如果存在冗余,则布尔值为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
和上面的内容

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)