13

如何EXCEPT在 Hive QL 中执行子句(如 SQL)

我有 2 个表,每个表都是唯一 ID 列。

我想查找仅在表 1 中但不在表 2 中的 id 列表

表格1

apple
orange
pear

表 2

apple
orange

在 SQL 中,您可以执行 EXCEPT 子句 ( http://en.wikipedia.org/wiki/Set_operations_%28SQL%29 ),但在 Hive QL 中不能执行此操作

4

2 回答 2

27

我不认为有任何内置的方法可以做到这一点,但LEFT OUTER JOIN应该做的伎俩。

这会从中选择所有table1存在的ID table2

SELECT t1.id FROM table1 t1 LEFT OUTER JOIN table2 t2 ON (t1.id=t2.id) WHERE t2.id IS NULL;
于 2012-06-04T22:58:50.980 回答
2

我们可以在 Hive 中使用NOT EXISTS子句作为MINUS等价物。

SELECT t1.id FROM t1 WHERE NOT EXISTS (SELECT 1 from t2 WHERE t2.id = t1.id);
于 2020-05-27T10:42:39.650 回答