如何使用rank函数获取hive中的最新记录

时间:2017-09-19 17:26:36

标签: sql hadoop hive hiveql sqoop

我在hive下面的表中有列id,名称和时间戳:

table

根据下面的时间戳,应将输出作为最新记录:

table

2 个答案:

答案 0 :(得分:3)

你不需要为此排名。您的输出描述如下:

select t.*
from t
order by t.transaction_time desc
limit 3;

编辑:

哦,你想要rank()dense_rank()

select t.*
from (select t.*,
             dense_rank() over (order by t.transaction_time desc) as seqnum
      from t
     ) t
where seqnum = 1;

答案 1 :(得分:1)

您可以使用rankrow_number

select *
from (
    select t.*,
        row_number() over (
            partition by name 
            order by transaction_time desc
            ) as seq
    from your_table t
    ) t 
where seq = 1;