我有一个场景,例如:
with tmp as (select name from table1)
select * from table2 b
where b.name=(select max(name) from tmp)
但是,hive无法识别此语法,因此是否有合法的语法?
经过搜索,我知道它可以使用 join
要实现:
select table2.* from table2
join (select max(name) as name from tmp) t2
where table2.name = t2.name
但我不想用join作为 join
会很慢,我只想作为参考。就像在 MySQL
,您可以将结果设置为参考:
set @max_date := select max(date) from some_table;
select * from some_other_table where date > @max_date;
而hive可以达到将查询结果存储在 shell
. 检查:hiveql:将查询结果用作变量
配置单元能否在sql模式下支持这种功能?
1条答案
按热度按时间cvxl0en21#
在hive中,您可以实现以下目标:
另一种方法:您还可以在配置单元中创建临时表,这将有助于复制上面的oracle查询。