语法格式: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】相关推荐

  1. HIVE中ROW_NUMBER()函数的讲解

    ROW_NUMBER()函数 ROW_NUMBER() OVER(PARTITION BY COLUMN1 ORDER BY COLUMN2) 1上述代码含义是首先根据COLUMN1进行结果集分组,结 ...

  2. Sql Server 2005 ROW_NUMBER 函数实现分页

    过去用SQL Server 2000分页的,大多都用到了临时表.SQL Server 2005 ROW_NUMBER 函数支持分页,性能据说也非常不错. Paging Records Using SQ ...

  3. [转]SQL2005后的ROW_NUMBER()函数的应用

    SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系 ...

  4. Oracle的row_number函数

    row_number函数 语法格式 row_number() over (partition by a order by b) 语法说明 将表按照a字段进行分组,然后,按照b字段进行组内排序 并给出排 ...

  5. oracle分组_MySQL分组取TOP,实现Oracle的ROW_NUMBER函数的功能

    Excel中分组排序只需要对数据进行升序降序,再利用if函数添加排序序号,即可筛选出分组top数据. Oracle也有row_number()函数对数据进行分组排序,而MySQL并没有此类函数,那么如 ...

  6. [MSSQL]ROW_NUMBER函数

    ROW_NUMBER()在SQL2K5版本中新增,该函数返回结果集分区内行的序列号,每个分区的第一行从 1 开始,连续不间断,后跟OVER BY子句或者PARTITION BY子句 先构造一张表,放一 ...

  7. T-SQL利用Row_Number函数实现分页

    SQL: CREATE PROCEDURE PagingViewTest (@currentPageIndex INT, --页序号@pageSize INT, --页大小@pageCount INT ...

  8. hive的row_number()函数

    hive的row_number()函数 功能 用于分组,比方说依照uuid分组 组内可以依照某个属性排序,比方说依照uuid分组,组内按照imei排序 语法为row_number() over (pa ...

  9. SQL中 ROW_NUMBER 函数的用法

    SQL中 ROW_NUMBER 函数的用法 ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号.在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是 ...

最新文章

  1. pandas_getdummies()
  2. RHEL7: unbound(DNS server)的简单配置
  3. 十进制与二进制间的相互转换
  4. C++设计模式:Template Method
  5. 扔掉 Postman,一个工具全部搞定,真香!
  6. 转-最常被程序员们谎称读过的计算机书籍
  7. 使用movetable收缩表空间
  8. Vue自定义指令原来这么简单
  9. pytorch的nn.CrossEntropyLoss()函数使用方法
  10. Mac隔空投送功能在哪? macbook隔空投送更方便的使用方法
  11. AOP的XML架构、AOP的@AspectJ
  12. 关于Ubuntu10.04中使用 apt-get install 安装软件总是出现“E: Package *** has no installation candidate” 错误的解决方案
  13. php5 mysql 源_thinkphp6:访问多个mysql数据源(thinkphp6.0.5 / php 7.4.9)
  14. 手机端输入键盘导致 position fixed
  15. 首次体验 Live Writter
  16. Python生成高斯白噪声white noise
  17. python曲线和直线的交点_求直线与分段线性曲线的交点
  18. Qt Cmake configuration has no path to a C++ compiler set, even though the toolkit has a v
  19. Python学习笔记(5),Battleship 游戏
  20. Uploadifive上传

热门文章

  1. 剑指-从尾到头打印链表
  2. 洛谷 - P1989 无向图三元环计数(思维建图)
  3. 蓝桥杯 - 连号区间数(暴力)
  4. php获取访问浏览器,php获取访问者浏览器
  5. string基本字符系列容器
  6. [luogu4389]付公主的背包
  7. CEF:MFC 对话框 Demo(VS2013)
  8. 7.OD-字符串参考
  9. IOCP中在WSASend以及WSARecv的时候出现WSA_IO_PENDING情况的说明
  10. 用Python实现归并排序