hive 的分组排序用法

**

hive 的分组排序用法

row_number() over( partition by 分组的字段 order by 排序的字段) as rank;
row_number() over( distribute by 分组的字段 sort by 排序的字段) as rank
注意:
partition by 只能和order by 组合使用
distribute by 只能和 sort by 使用
order by 全局排序
sort by 局部排序
distribute by + sort by = cluster by
**
以下是具体sql:

select taaccountid,fundvol from (
select taaccountid ,fundvol,
row_number() over (distribute by taaccountid sort by fundvol desc) as num 
from ods_db.bal_fund
)as rs where rs.num<=3;

上述sql意思是,根据taaccountid 分组 根据fundvol desc 降序排序,rs.num<=3 获取fundvol的前三名

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值