选择 Impala/HIVE/SQL 中的倒数第二个值

Choosing the second to last value in Impala/HIVE/SQL

我想获取 Impala 中列表的倒数第二个项目。是否有 function/method 会 return (min+1)(x)?

示例table:

foo   bar
 1     3
 2     5
 3     6
 4     2
 5     8

函数

SELECT MIN(bar) FROM example

将return

bar
 2

我想 select 而不是 bar 中数值列表中的倒数第二个值:

SELECT SECONDTOLAST(bar) FROM example

returning

bar
 3

您可以使用row_number()函数:

select t.bar
from (select *, row_number() over (order by bar) as seq
      from table
     ) t
where seq = 2; -- Get the second last bar