sql—如何获取配置单元中的第二个最后一个分区(hql)

b0zn9rqh  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(418)

我有一个包含以下分区的配置单元表: part_date='07-12-2016' part_date='04-12-2016' part_date='01-12-2016' 现在我如何得到第一个分区,它比配置单元查询中最近的分区小。假设分区值是将数据摄取到表中的日期。在这种情况下,它应该是part_date='04-12-2016'。
所以查询应该是这样的: select part_date from table_A where part_date > second_last_partition(ie 04-12-2016); 提前谢谢

inb24sb2

inb24sb21#

你可以用 row_number 窗口函数并获取第二个最新行。

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 功能。

相关问题