【问题标题】:check the likeness between two very large data tables on SQL检查 SQL 上两个非常大的数据表之间的相似性
【发布时间】:2014-06-23 08:55:45
【问题描述】:

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

桌子很大。其中一个有1亿行4列;另一个有 15 亿行和 3 列。

示例,表 1

  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 大得多?

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

谢谢

【问题讨论】:

  • Mysql 还是 SqlServer?似乎不太可能两者兼而有之。你试过什么是一个问题。这也是一项一次性的任务,时不时地,还是您想要经常做的事情?
  • 你造成困难的部分是什么?
  • @Dan Bracuk,我是 SQL 新手。如何设计高效的 SQL 查询?谢谢
  • @Tony Hopkinson,请查看我的新编辑。谢谢!
  • MySql 还是 sql server??这是两个基本的外连接查询,在添加了几个索引之后,您在软件方面无能为力。你最好找到一种方法来完全避免这样做,通常是不可取的......

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


【解决方案1】:

内特扎

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

SELECT * FROM TABLE_1
MINUS
SELECT * FROM TABLE_2

【讨论】:

    猜你喜欢
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    相关资源
    最近更新 更多