ele*_*bby 10 hadoop hive hiveql
我有两个表A和B,它们都有一个列id.我希望从A中获得不存在于B中的ID.显而易见的方法是:
SELECT id FROM A WHERE id NOT IN (SELECT id FROM B)
Run Code Online (Sandbox Code Playgroud)
不幸的是,Hive不支持in,exists或子查询.有没有办法使用连接实现上述功能?
我想到了以下几点
SELECT A.id FROM A,B WHERE A.id<>B.id
Run Code Online (Sandbox Code Playgroud)
但似乎这将返回整个A,因为B中始终存在一个不等于A中任何id的id.
Cha*_*guy 25
您可以LEFT OUTER JOIN在Hive中执行相同的操作:
SELECT A.id
FROM A
LEFT OUTER JOIN B
ON (B.id = A.id)
WHERE B.id IS null
Run Code Online (Sandbox Code Playgroud)
小智 5
蜂巢似乎支持IN,NOT IN,EXIST和NOT EXISTS0.13。
select count(*)
from flight a
where not exists(select b.tailnum from plane b where b.tailnum = a.tailnum);
Run Code Online (Sandbox Code Playgroud)
中的子查询,EXIST并且NOT EXISTS应该具有相关的谓词(如b.tailnum = a.tailnum上述示例中的子查询)。有关更多信息,请参阅Wive子句中的Hive Wiki>子查询。
| 归档时间: |
|
| 查看次数: |
29761 次 |
| 最近记录: |