0

我有两个表(主表和辅助表),我们需要在这两个表之间进行行和列级别的协调,并汇总这些表之间的差异。

表 A:

可乐 col_B col_C

表 B:

可乐 col_B col_C
美国广播公司

在上表中 col_A 是主键列。我想比较表 A 和表 B 并产生如下结果。

匹配行:2

不匹配的行数:1

列不匹配:col_C(示例键:四)

表 A 中存在但 B 中不存在的行数:0

表 B 中存在但 A 中不存在的行:1(示例键:九)

通常,表 A 和表 B 大约有。十亿行。在 Snowflake 中执行此操作的有效方法是什么。

4

1 回答 1

0

对于行比较,请考虑MINUS/EXCEPT set 运算符。

SELECT count(*) as countOfRowsInTable1NotInTable2 FROM 
( 
    SELECT col_A, col_B, col_C FROM table1
    MINUS 
    SELECT col_A, col_B, col_C FROM table2
)sub;

您可以颠倒内部 SELECT 语句的顺序以获得 tableB 的相同计数。如果您想查看一个表中存在哪些行但另一个表中不存在,您也可以执行 aSELECT *而不是。SELECT COUNT(*)

于 2022-02-17T15:19:57.887 回答