sql - 检查数组元素是否多次出现
问题描述
有没有办法检查整数数组中是否存在多次出现的任何元素?如果存在冗余或违规元素列表,则布尔值 False 都可以。
解决方案
unnest()
数组,然后使用GROUP BY
and HAVING
withcount()
过滤出现多次的值。
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);
推荐阅读
- python - 使用 Python 识别所有 Windows 打开的文件夹
- python - 如何从 QLineEdit 获取文本以更新 QTableView 中的单元格
- python - 如何使用python在spark中使用参数化的多列来创建分区?
- powershell - 使用 PowerShell 计算整个光学媒体光盘的哈希值
- ruby - 如何在 Ruby(或 Rails)中将 OpenSSH 公钥转换为 OpenSSL
- css - CSS中列表单元格内圆形的位置和居中
- android - “RT 节流已激活”+ 泛洪 UDP 数据包时出现内核恐慌
- excel - 如何用另一个表中的数据自动填充单元格?
- c++ - 结构化块指的是什么?
- python - 如何通过索引在字符串中添加挖掘而不删除任何内容