【发布时间】:2015-12-24 11:42:35
【问题描述】:
我想跨多个表检查每个表中是否存在相同的键/相同数量的键。
目前我已经创建了一个解决方案,它检查每个表的键数,当所有表合并在一起时检查键数,然后进行比较。
这个解决方案有效,但我想知道是否有更优化的解决方案......
目前的示例解决方案:
SELECT COUNT(DISTINCT variable) AS num_ids FROM table_a;
SELECT COUNT(DISTINCT variable) AS num_ids FROM table_b;
SELECT COUNT(DISTINCT variable) AS num_ids FROM table_c;
SELECT COUNT(DISTINCT a.variable) AS num_ids
FROM (SELECT DISTINCT VARIABLE FROM table_a) a
INNER JOIN (SELECT DISTINCT VARIABLE FROM table_b) b ON a.variable = b.variable
INNER JOIN (SELECT DISTINCT VARIABLE FROM table_c) c ON a.variable = c.variable;
更新:
我在一个查询中将这些放在一起面临的困难是任何表在我要检查的 VARIABLE 上可能不是唯一的,因此我必须在合并之前使用 distinct 以避免扩展加入
【问题讨论】:
-
如果表
A有1, 2, 2, 3和表B有1, 1, 2, 3,他们认为是相同还是不同? -
在你提到的情况下,我希望它们被视为相同
标签: postgresql amazon-redshift