如何在配置单元(HQL)中获取倒数第二个分区

How to get the second last partition in hive (HQL)

我有一个配置单元 table,分区如下:

part_date='07-12-2016'

part_date='04-12-2016'

part_date='01-12-2016'

现在如何在配置单元查询中获取小于最新分区的第一个分区。假设分区值是数据被引入 table 的日期。 在这种情况下,它应该是 part_date='04-12-2016'.

所以查询应该是这样的:

select part_date from table_A where part_date > second_last_partition(ie 04-12-2016);

提前致谢

您可以使用 row_number window 函数并获取倒数第二行。

select part_date
from (select part_date,row_number() over(order by part_date desc) as rn 
      from table_A) t
where rn = 2

我假设 part_date 列是不同的。如果没有,您应该使用 dense_rank 函数。