HIVE-利用ow_number() OVER(PARTITION BY)函数介绍求TOP-K

http://blog.csdn.net/631799/article/details/7419797

第一句话:

select row_number() over (partition by month order by ref_host_cnts desc;
partition:按照month分成区块
order by :排序实在partition分成的区块中分别进行。
row_number():对各个分区分别添加编号,类似于rownum的递增序列
 
 
嵌套后获取TOPK,获取每个月前两名的数据
select t.hour, t.od, t.ref_host, t.ref_host_cnts from
 (select ref_host, ref_host_cnts,month as hour,
row_number() over (partition by month order by ref_host_cnts desc) as od
from dw_ref_host_visit_cnts_h) t where od<=3;

转载于:https://www.cnblogs.com/kouryoushine/p/7845528.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值