ROW_NUMBER() OVER函数的基本用法

看到很多分组函数,今天看到ROW_NUMBER() OVER函数对这个函数功能不了解,基本没有用过,

拿来研究一把,部分资料参看http://www.cnblogs.com/fxgachiever/archive/2010/09/15/1826792.html;但是需求和这里不完全一致;

详细函数介绍:

语法: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排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

下面我们看一个详细的例子;

1.需求描述,业务表含有3个字段,序号,部门ID,部门工资,通过SQL实现每个部门工资最高的那个部门ID,和最高工资;

2.业务表数据,


3.实现sql


你可能感兴趣的:(row_number())