Hive如何分组取Top N
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,小编给大家分享一下Hive如何分组取Top N,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Hive分组取Top NHiv
千家信息网最后更新 2025年12月03日Hive如何分组取Top N
小编给大家分享一下Hive如何分组取Top N,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
Hive分组取Top N
Hive在0.11.0版本开始加入了row_number、rank、dense_rank分析函数,可以查询分组排序后的top值
使用规则:
row_number() over ([partition col1] [order by col2] )
rank() over ( [partition col1] [order by col2] )
dense_rank() over ( [partition col1] [order by col2] )
它们都是根据col1字段分组,然后对col2字段进行排序,对排序后的每行生成一个行号,这个行号从1开始递增
col1、col2都可以是多个字段,用','分隔
区别
1)row_number:不管col2字段的值是否相等,行号一直递增, 比如:有两条记录的值相等,但一个是第一,一个是第二
2)rank:上下两条记录的col2相等时,记录的行号是一样的,但下一个col2值的行号递增N(N是重复的次数),比如:有两条并列第一,下一个是第三,没有第二
3)dense_rank:上下两条记录的col2相等时,下一个col2值的行号递增1, 比如:有两条并列第一,下一个是第二
row_number可以实现分页查询
实际操作
创建表
create table t(name string, sub string, score int) row format delimited fields terminated by '\t';
数据在附件的a.txt里
a chinese 98a english 90d chinese 88c english 82c math 98b math 89b chinese 79z english 90z math 89z chinese 80e math 99e english 87d english 90加载数据load data local inpath '/home/hadoop/hive-example/a.txt' into table tb4;
分组排序
--row_numberselect *, row_number() over (partition by sub order by score) as od from t; --rankselect *, rank() over (partition by sub order by score) as od from t; --dense_ranselect *, dense_rank() over (partition by sub order by score desc) from t;
业务实例
--统计每个学科的前三名select * from (select *, row_number() over (partition by sub order by score desc) as od from t ) t where od<=3;--语文成绩是80分的排名是多少select od from (select *, row_number() over (partition by sub order by score desc) as od from t ) t where sub='chinese' and score=80;--分页查询select * from (select *, row_number() over () as rn from t) t1 where rn between 1 and 5;
以上是"Hive如何分组取Top N"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
分组
行号
字段
排序
篇文章
查询
上下
内容
数据
不怎么
业务
函数
多个
大部分
学科
实例
实际
成绩
更多
次数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
默纳克服务器能升级吗
脏小豆的骗赞服务器第01集
管家婆sql服务器启动不了
推荐系统选择数据库
极限生存模式哪个服务器可以玩
fm2022 数据库开小了
悦易网络技术有限公司怎么样
视频监控流媒体服务器
融学500服务器错误怎么办
老师网络安全倡议书百度文库
远程连接服务器管理员用户
晓安谈网络技术
怎么查看手机短信数据库
应用网络技术建立在哪
计算机网络技术.doc
软件开发部管理评审报告
实惠的erp软件开发设计
中国能源产业地图数据库
数据库投射
怎么连接非本机的数据库
嘉定区一站式数据库服务价钱
币安说你访问的服务器无法使用
软件开发所有权归对方
网吧主服务器怎么开机
吃鸡哪个服务器好点
西安电子科大网络安全
td数据库修改字段类型
网络技术需要掌握什么
数据库管理及其发展的4个过程
金融风控软件开发公司