如何在配置单元(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
函数。
我有一个配置单元 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
函数。