7

我正在寻找蜂巢中的东西

Select * from table 1 where dt > (Select max(dt) from table2) 

显然 hive 不支持 where 子句中的子查询,而且即使我使用连接或半连接,它也只比较 = 而不是 > (据我所知)。

有人可以建议我在蜂巢中编写相同查询的替代解决方案吗?

4

1 回答 1

8
select table_1.* from table_1
join (select max(dt) as max_dt from table2) t2
where table_1.dt > t2.max_dt

你是对的,你只能在 joinon子句中有相等条件,但你可以在子句中拥有任何你想要的东西where

通常不建议这样做,因为没有on子句意味着 Hive 将首先进行完整的笛卡尔积,然后进行过滤,但由于连接的一侧只有一行,所以这不是问题。

于 2014-07-01T19:22:45.557 回答