SQL(Redshift)获取多个表的交叉

时间:2017-09-27 12:25:58

标签: amazon-redshift intersect

我正在使用Redshift并且有6个ID表。我想得到每个表之间的交叉。

所以我的最终输出看起来像这样:

  • 表1&表2有10%的公共ID
  • 表1&表3具有50%的通用ID
  • .....
  • .....
  • 表6&表4具有20%的通用ID
  • 表6&表5有3%的通用ID

我可以轻松获取数据,但是会重复使用相同的SQL,因此我尝试创建一些包含所有ID和表的表,但是我仍然坚持要获得什么一个或两个SQL中的数据。

欢迎任何想法!

1 个答案:

答案 0 :(得分:0)

您可以尝试在子查询中按ID完全连接所有这些表,然后使用条件聚合,以便Table 1 & Table 2 have 10% common IDs表示为

100.0*sum(case when id1 is not null and id2 is not null then 1 end)/count(id1)

(以表1行数作为分母)