hive中order by的用法

使用rank 单用rank报错!! Missing over clause for function : rank

select name,sum(cost) s1, rank()
from business
group by name;

rank() over() 没指定排序指标,rank全部为1

select name,sum(cost) s1, rank() over()
from business
group by name;

结果:

name    s1    rank_window_0
tony    94    1
neil    92    1
mart    299    1
jack    176    1

使用外部order by 对分组内的函数进行排序

select name,sum(cost) sa
from business
group by name
order by sa desc;

使用开窗函数order by,对分组函数进行排序

select name,sum(cost) s1, rank() over(order by sum(cost) desc) r1
from business
group by name;

注:这个两个结果等价。!!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐