我有两个表,Table_A和Table_B。
表-A:
Value
-----
1001
2001
3001
4001
5001
表-B:
Min Max
--- ---
1000 2000
3000 4000
5000 6000
7000 8000
9000 10000
我需要从Table_A中获取那些不在主表_B中的任何间隔/范围之间的记录。
预期结果:
Value
-----
2001
4001
请让我知道编写Hive查询以获得预期结果的方法。
答案 0 :(得分:1)
您可以使用cross join
和聚合:
select a.value
from table_a a cross join
table_b b
group by a.value
having sum(case when a.value between b.min and b.max then 1 else 0 end) = 0;
答案 1 :(得分:0)
这是另一个使用join和NOT IN语句:
SELECT value
FROM table_a
WHERE value NOT IN
(SELECT value
FROM table_a
INNER JOIN table_b
ON table_a.value BETWEEN table_b.min AND table_b.max)