2017-09-27 55 views
0

我使用Redshift并有6个ID表。我想要获取每个表之间的相交点。SQL(Redshift)获取多个表的相交

所以我最后的结果将是这个样子:

  • 表1 &表2有10%的通用标识
  • 表1 &表3有50%的通用标识
  • .... 。
  • .....
  • 表6 &表4具有20%共同的ID
  • Ť能6 &表5中有3%的共同标识

我可以很容易地获取数据,但它是一个很多重复相同的SQL的,所以我想尽量创造所有的ID和表格的一些表他们在,但我坚持要在一个或两个SQL中获取数据。

任何想法欢迎!

回答

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的行数作为分母)

+0

谢谢,这是我最后做的 – ewan123uk