sql - 如何找到存在于许多表中的列的公共值
问题描述
我在 oracle DB 中有很多表。所有表都有一个名为“COLUMN_FILTER”的公共列。所有表都有很多唯一的“COLUMN_FILTER”值。有没有办法找到所有表中存在的 'COLUMN_FILTER' 的公共记录?有关示例,请参阅以下场景,其中我为“COLUMN_FILTER”提供了唯一值。
Table A: 'X','Y','Z'
Table B: 'W','X'
Table C: 'Z'
Table D: 'Y','Z'
我期望输出是'Z','W'(任何可能的最小集)。这样我就可以将此过滤器放在所有表上。
解决方案
与该列一起使用HAVING COUNT(*)>1
子句GROUP
BY
SELECT column_filter
FROM
(
SELECT column_filter FROM tableA
UNION ALL
SELECT column_filter FROM tableB
UNION ALL
SELECT column_filter FROM tableC
UNION ALL
SELECT column_filter FROM tableD
)
GROUP BY column_filter
HAVING COUNT(*)>1
推荐阅读
- javascript - NodeJS 中的 Firebase Admin SDK - 用法
- apache-spark - Pyspark 无法读取带有特殊字符(ø)作为分隔符的 csv 文件
- android - 关于 settings.gradle.ktl 的 Kotlin DSL 未解析参考
- java - 获取错误的firebase规则。当我可以首先显示时,我的设置配置文件活动会在我更改“.write”时显示:true 它没有显示
- tox - 在另一个命令中使用命令的输出
- angular - 如何以角度调试传单地图事件?
- json - 如何在 Talend 中使用 API 调用执行增量数据更新(批量 Json 文件)过程
- c# - 没有 UI 的 IdentityServer4 Windows 身份验证
- java - 重新发送失败的请求
- python-2.7 - 如何模拟 aws athena 功能。?