Hive 分组值上的蜂巢秩

Hive 分组值上的蜂巢秩,hive,hiveql,Hive,Hiveql,大师,我在蜂巢排名过程中遇到了麻烦,我喜欢每天对交易进行排名(对于相同的trx值,没有重复的排名值) 这是我的密码 select a.date, a.hour, trx, rank() over (order by a.trx) as rnk from( select date,hour, count(*) as trx from smy_tb group by date, hour )a limit 100; 问题是: 1.使用相同的trx值重复排列值 2.秩值继续到下一个日期(应按日期和

大师,我在蜂巢排名过程中遇到了麻烦,我喜欢每天对交易进行排名(对于相同的trx值,没有重复的排名值)

这是我的密码

select a.date, a.hour, trx, rank() over (order by a.trx) as rnk from(
select date,hour, count(*) as trx from  smy_tb
group by date, hour
)a
limit 100;
问题是: 1.使用相同的trx值重复排列值 2.秩值继续到下一个日期(应按日期和小时分组,因此每个日期只返回24秩值)

需要建议,
谢谢

您应该按日期列划分,并使用特定的顺序

rank() over (partition by a.date order by a.hour desc)
正如@BKS所解释的

这是已解析的代码

select a.date, a.hour, trx, row_number() over (partition by a.date order by a.trx desc) as rnk from(
select date,hour, count(*) as trx from  smy_tb
group by date, hour
)a
limit 100;

如果您在一天内获得相同的trx值,您希望订购什么?您可以使用trx上带有顺序的行号,也可以使用trx上带有顺序和小时的秩()。在这两种情况下,date.hi@BKS分区,您是对的,row_number()解决这个问题
select a.date, a.hour, trx, row_number() over (partition by a.date order by a.trx desc) as rnk from(
select date,hour, count(*) as trx from  smy_tb
group by date, hour
)a
limit 100;