MSSQL 中窗口函数 OVER()使用dense_rank(),rank(),ROW_NUMBER()及统计函数说明

数据表TEST中数据为4个学生的三门课程成绩,如:

1、rank()

使用rank()函数,窗口函数over() 中order by 列如果出现重复,下一序号将跳过重复的笔数顺延

select *,rank() over(partition by subject order by sorce desc) from test

结果如下:

2、dense_rank()

使用dense_rank() 函数,窗口函数over() 中order by 列如果出现重复,下一序号将顺延

select *,dense_rank() over(partition by subject order by sorce desc) from test

结果如下:

3、ROW_NUMBER(),SUM(),AVG()

ROW_NUMBER():窗口函数中partition by 列分组后,每个组的序号

SUM():窗口函数中partition by 列分组后,每个组的指定列的求和

AVG():窗口函数中partition by 列分组后,每个组的指定列的平均值

select *,

ROW_NUMBER() over(partition by name order by subject) as no,

SUM(sorce) over(partition by name) as Total,

avg(sorce) over(partition by name) as Avg_sorce  from test
 

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值