浅析row_number()函数【HQL】
语法格式:row_number() over(partition by 分组列 order by 排序列 desc)
row_number() over()分组排序功能:
在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、 order by 的执行。
说不如来个实例:
创表
create table t1(id int,name String,class String,score int)
row format delimited fields terminated by "," ;
加载数据
load data local inpath "/root/t1" into table t1;
实例一
对所有数据进行排序,无分组
select *,row_number() over(order by score desc) r from t1
结果展示
实例二
分组排序,根据class分组根据成绩排序
select id,
name,
class,
score,
row_number() over(partition by class order by score desc) rank
from t1;
结果展示
实例三
在实例二中已经做到了分组排序,不过对于我们的需求一般针对于前几位,也就是topN,如下:
select t.id,t.name,t.class,t.score from
(select id,
name,
class,
score,
row_number() over(partition by class order by score desc) rank
from t1) t where t.rank < 4;
结果展示
希望这篇博客能让你对row_number()函数有一定的认识。欢迎交流~
浅析row_number()函数【HQL】相关推荐
- HIVE中ROW_NUMBER()函数的讲解
ROW_NUMBER()函数 ROW_NUMBER() OVER(PARTITION BY COLUMN1 ORDER BY COLUMN2) 1上述代码含义是首先根据COLUMN1进行结果集分组,结 ...
- Sql Server 2005 ROW_NUMBER 函数实现分页
过去用SQL Server 2000分页的,大多都用到了临时表.SQL Server 2005 ROW_NUMBER 函数支持分页,性能据说也非常不错. Paging Records Using SQ ...
- [转]SQL2005后的ROW_NUMBER()函数的应用
SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系 ...
- Oracle的row_number函数
row_number函数 语法格式 row_number() over (partition by a order by b) 语法说明 将表按照a字段进行分组,然后,按照b字段进行组内排序 并给出排 ...
- oracle分组_MySQL分组取TOP,实现Oracle的ROW_NUMBER函数的功能
Excel中分组排序只需要对数据进行升序降序,再利用if函数添加排序序号,即可筛选出分组top数据. Oracle也有row_number()函数对数据进行分组排序,而MySQL并没有此类函数,那么如 ...
- [MSSQL]ROW_NUMBER函数
ROW_NUMBER()在SQL2K5版本中新增,该函数返回结果集分区内行的序列号,每个分区的第一行从 1 开始,连续不间断,后跟OVER BY子句或者PARTITION BY子句 先构造一张表,放一 ...
- T-SQL利用Row_Number函数实现分页
SQL: CREATE PROCEDURE PagingViewTest (@currentPageIndex INT, --页序号@pageSize INT, --页大小@pageCount INT ...
- hive的row_number()函数
hive的row_number()函数 功能 用于分组,比方说依照uuid分组 组内可以依照某个属性排序,比方说依照uuid分组,组内按照imei排序 语法为row_number() over (pa ...
- SQL中 ROW_NUMBER 函数的用法
SQL中 ROW_NUMBER 函数的用法 ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号.在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是 ...
最新文章
- pandas_getdummies()
- RHEL7: unbound(DNS server)的简单配置
- 十进制与二进制间的相互转换
- C++设计模式:Template Method
- 扔掉 Postman,一个工具全部搞定,真香!
- 转-最常被程序员们谎称读过的计算机书籍
- 使用movetable收缩表空间
- Vue自定义指令原来这么简单
- pytorch的nn.CrossEntropyLoss()函数使用方法
- Mac隔空投送功能在哪? macbook隔空投送更方便的使用方法
- AOP的XML架构、AOP的@AspectJ
- 关于Ubuntu10.04中使用 apt-get install 安装软件总是出现“E: Package *** has no installation candidate” 错误的解决方案
- php5 mysql 源_thinkphp6:访问多个mysql数据源(thinkphp6.0.5 / php 7.4.9)
- 手机端输入键盘导致 position fixed
- 首次体验 Live Writter
- Python生成高斯白噪声white noise
- python曲线和直线的交点_求直线与分段线性曲线的交点
- Qt Cmake configuration has no path to a C++ compiler set, even though the toolkit has a v
- Python学习笔记(5),Battleship 游戏
- Uploadifive上传