检查SQL上两个非常大的数据表之间的相似性

时间:2014-05-06 16:16:57

标签: mysql sql sql-server sql-server-2008 netezza

我需要检查SQL上两个数据表之间的相似性。我正在Win 7上为Netezza开发Aginity Workbench。

表非常大。其中一个有1亿行4列;另一个有1500万行和3列。

示例,table1

  ID1    ID2      ID3        Value   
  xxxx   xxxxxx   xxxxxxxx    xxx.xxxxxx  // here x is 0-9 int

表2:

  ID1    ID2          Value   
  xxxx   xxxxxx     xxx.xxxxxx

ID1和ID2可能重复,但值不会在同一个表中重复。

我需要检查table1是否是table2的子集,并找到table1中可用但不在table2中的行,反之亦然。

我是SQL新手。如何设计高效的SQL查询?我需要经常执行相同的任务,因此高效的查询可能会更有帮助。

更新 我在以下地址使用了解决方案:

Get super set records not contained in a subset (mutual exclusion)

但是,结果是0行。我还检查了两个表中没有重复的行。 为什么table2比table1大得多?

还有其他方法可以找到他们的差异吗?

谢谢

1 个答案:

答案 0 :(得分:0)

NETEZZA

http://www.techonthenet.com/sql/minus.php

SELECT * FROM TABLE_1
MINUS
SELECT * FROM TABLE_2