蜂巢如何获得第二最大,小于最大不起作用

时间:2018-09-27 16:02:39

标签: hive

我搜索了stackoverflow,并在SQL中找到了该解决方案

select max(concat(snapshot_year_month,snapshot_day)) from db.table where concat(snapshot_year_month,snapshot_day) < (select max(concat(snapshot_year_month,snapshot_day)) from db.tale)

但是,这在蜂巢中不起作用,并显示错误-

UnsupportedOperationException: Cannot evaluate expression: scalar-subquery#118829 

如何在蜂巢中完成此任务? (尝试获得第二个最大值)

1 个答案:

答案 0 :(得分:0)

您具有排名功能。

select * 
from (select row_number() over(order by concat(snapshot_year_month,snapshot_day) desc) as rnum 
      from db.table
     ) t 
where rnum=2 

这假定串联的列是唯一的。如果不是唯一的,请使用dense_rank