语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。
示例:
xlh           row_num
1700              1
1500              2
1085              3
710                4

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

实例:

初始化数据

create table employee (empid int ,deptid int ,salary decimal(10,2))
insert into employee values(1,10,5500.00)
insert into employee values(2,10,4500.00)
insert into employee values(3,20,1900.00)
insert into employee values(4,20,4800.00)
insert into employee values(5,40,6500.00)
insert into employee values(6,40,14500.00)
insert into employee values(7,40,44500.00)
insert into employee values(8,50,6500.00)
insert into employee values(9,50,7500.00)

数据显示为

empid       deptid      salary
----------- ----------- ---------------------------------------
1           10          5500.00
2           10          4500.00
3           20          1900.00
4           20          4800.00
5           40          6500.00
6           40          14500.00
7           40          44500.00
8           50          6500.00
9           50          7500.00

需求:根据部门分组,显示每个部门的工资等级

预期结果:

empid       deptid      salary                                  rank
----------- ----------- --------------------------------------- --------------------
1           10          5500.00                                 1
2           10          4500.00                                 2
4           20          4800.00                                 1
3           20          1900.00                                 2
7           40          44500.00                                1
6           40          14500.00                                2
5           40          6500.00                                 3
9           50          7500.00                                 1
8           50          6500.00                                 2

SQL脚本:

SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee

SQL ROW_NUMBER() OVER函数的基本用法用法相关推荐

  1. sql ROW_NUMBER() 排序函数

    sql ROW_NUMBER() 排序函数 1使用row_number()函数进行编号:如 View Code 1 select email,customerID, ROW_NUMBER() over ...

  2. SQL With As 用法Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    Sql 四大排名函数(ROW_NUMBER.RANK.DENSE_RANK.NTILE)简介 排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张Ord ...

  3. ROW_NUMBER() OVER函数的基本用法用法

    ROW_NUMBER() OVER函数的基本用法用法 转自:http://www.cnblogs.com/icebutterfly/archive/2009/08/05/1539657.html 语法 ...

  4. ROW_NUMBER() OVER()函数用法详解

    今天同事问了一个关于插入表的问题,对象:被插入表sys_equi_disorg   A  , 查询表sys_equi_dict   B 因为A表的ID不是自增的,并且不能更改表结构,主键默认值还是0, ...

  5. Oracle中ROW_NUMBER() OVER()函数用法

    Oracle中ROW_NUMBER() OVER()函数用法 1. 说明:ROW_NUMBER() OVER() 函数的作用:分组排序 2. 原理: row_number() over() 函数,ov ...

  6. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  7. SQL中object_id函数的用法

    SQL中object_id函数的用法 收藏  int object_id('objectname'); 此方法返回数据库对象标识号. 其中,参数objectname 表示要使用的对象,其数据类型为nc ...

  8. PL/SQL表---table()函数用法

    http://www.itpub.net/thread-617298-1-1.html PL/SQL表---table()函数用法: 利用table()函数,我们可以将PL/SQL返回的结果集代替ta ...

  9. Sql Server REPLACE函数的使用;SQL中 patindex函数的用法

    Sql Server REPLACE函数的使用 REPLACE 用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式. 语法 REPLACE ( ''string_replace1' ...

最新文章

  1. HDu1241 DFS搜索
  2. 从零开始学习Sencha Touch MVC应用之八
  3. 神经网络应该注意的重要问题
  4. MySQL第1天:整体目录
  5. 神策数据丨九大行业数字化经营指南集锦,值 100% 收藏
  6. Python字符串常用操作
  7. idea 自动添加doc_interllij idea生成javadoc
  8. ic designer
  9. mysql目录下没有配置文件_MySQL没有my.cnf配置文件如何解决
  10. 智慧城市免费WiFi覆盖怎么实施?武邑开启智慧生活模式
  11. Qt工作笔记-QTreeWidgetItem中的CheckState以及遍历选中的CheckBox
  12. Centos Docker 安装 Redis 并测试使用记录
  13. linux鼠标回到桌面图标,Ubuntu16_18建立返回桌面、显示桌面的快捷图标的特殊方法...
  14. Redis百亿级Key你用过吗?
  15. js基础知识汇总02
  16. LINK : fatal error LNK1168
  17. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(十一)——带隙基准
  18. 3K热敏电阻测温程序
  19. suffix tree学习
  20. 基于卷积神经网络的手势识别研究论文

热门文章

  1. Mysql 出现Got error 28 from storage engine
  2. 干得累死,并不见得老板就待见你?
  3. petshop 4.0的数据持久层
  4. 这两天一直在捣腾lucene
  5. java压缩----使用ANT JDK压缩---解决中文问题
  6. 一名新晋程序员的自述:我的编程自学之路
  7. Nginx配置指令之listen
  8. 复制(Copying)
  9. Zookeeper基于Java访问-节点事件监听
  10. 设计模式在Netty 中的应用-单例模式源码举例