概述
转自:http://blog.csdn.net/jobschen/article/details/70821064
天用hive查数据时需要取每个分组的第一条数据,查了一发现hive 已经从0.11.0版本加入row_number函数,可以满足查询的需求。
ROW_NUMBER() 是从1开始,按照顺序,生成分组内记录的序列
用法如下:
ROW_NUMBER() OVER (partition BY COLUMN_A ORDER BY COLUMN_B ASC/DESC) rn
rn 是排序的别名执行时每组的编码从1开始
partition by:类似hive的建表,分区的意思;COLUMN_A 是分组字段
order by :排序,默认是升序,加desc降序;COLUMN_B 是排序字段
列如:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
根据 rn就可以求出每个组的top n
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
http://lxw1234.com/archives/2015/04/181.htm
http://www.jianshu.com/p/51599bab0c00
最后
以上就是矮小菠萝为你收集整理的Hive 用ROW_NUMBER取每组top n的全部内容,希望文章能够帮你解决Hive 用ROW_NUMBER取每组top n所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复