大数据之hive04-HIVE SQL中怎么取最后一条记录

需求

HIVE中怎么取最后一条记录?

解决方案

使用函数:row_number() over([partition_by_clause] order_by_clause)

原始数据

图片.png

按时间排序

select id,
       start_time,
       end_time,
       row_number() over(order by start_time desc) as rank
from call_record

输出:


图片.png

以ID分组按时间排序

select id,
       start_time,
       end_time,
       row_number() over(partition by id order by start_time desc) as rank
from call_record

输出:


图片.png

以ID分组按时间排序取最后一条记录

select* 
from(
   select id,
          start_time,
          end_time,
          row_number() over(partition by id order by start_time desc) as rank
   from call_record
    )a
where a.rank=1

输出


图片.png

如果要取第一条记录 desc改为asc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容