博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ROW_NUMBER() OVER函数运用
阅读量:5997 次
发布时间:2019-06-20

本文共 1595 字,大约阅读时间需要 5 分钟。

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

PARTITION BY:相当于数据库中的group by

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

--新建表Table_A

create table Table_A(name varchar(8),Subject varchar(8),Grade int)

insert into Table_A values('小A','数学',90)
insert into Table_A values('小A','语文',79)
insert into Table_A values('小A','英语',88)
insert into Table_A values('小B','数学',99)
insert into Table_A values('小B','语文',76)
insert into Table_A values('小B','英语',82)
insert into Table_A values('小C','数学',78)
insert into Table_A values('小C','语文',67)
insert into Table_A values('小C','英语',81)
insert into Table_A values('小D','数学',93)
insert into Table_A values('小D','语文',75)
insert into Table_A values('小D','英语',84)

--原始表

select * from Table_A

name Subject Grade
小A 数学 90
小A 语文 79
小A 英语 88
小B 数学 99
小B 语文 76
小B 英语 82
小C 数学 78
小C 语文 67
小C 英语 81
小D 数学 93
小D 语文 75
小D 英语 84

--执行以下语句后

select ROW_NUMBER() OVER(PARTITION BY name order by Grade desc) as id,name,Subject,Grade from Table_A

id name Subject Grade
1 小A 数学 90
2 小A 英语 88
3 小A 语文 79
1 小B 数学 99
2 小B 英语 82
3 小B 语文 76
1 小C 英语 81
2 小C 数学 78
3 小C 语文 67
1 小D 数学 93
2 小D 英语 84
3 小D 语文 75

--根据字段name分组,Grade排序

--提取成绩中的最大值,可用以下语句

select * from

(
    select ROW_NUMBER() OVER(PARTITION BY name order by Grade desc) as id,name,Subject,Grade from Table_A
)TT where id = 1

--每名学生,只显示前2单成绩,修改代码为以下即可

select * from

(
    select ROW_NUMBER() OVER(PARTITION BY name order by Grade desc) as id,name,Subject,Grade from Table_A
)TT where id between 1 and 2

 

转载于:https://www.cnblogs.com/hbwy/p/4914155.html

你可能感兴趣的文章
Deep Learning(深度学习)学习笔记整理系列之(八)
查看>>
时间序列分析之一次指数平滑法
查看>>
电子商务安全协议 SSL SET的探究
查看>>
Python+OpenCV图像处理(十一)—— 图像金字塔
查看>>
JPEG最优压缩参数试验【光影魔术手VS Image Optimizer】
查看>>
git 命令总结
查看>>
MySQL常用操作
查看>>
WSN无限传感网络
查看>>
PHP中Header使用的HTTP协议及常用方法
查看>>
c#设计模式系列:模板方法模式(Template Method Pattern)
查看>>
线程的start和run方法的区别
查看>>
2016012070小学四则运算练习软件项目报告
查看>>
Vue 2.0基础
查看>>
入门 编程 内核 工具 其他[转]
查看>>
62. 搜索旋转排序数组
查看>>
BufPay.com 个人收款接口 接入步骤
查看>>
百度编辑器ueditor 光标位置的坐标
查看>>
js连续的日期判断,判断相差几天
查看>>
hbase功能与架构
查看>>
js 闭包
查看>>