先新建一个和我一样的数据表,一定要记得动起来噢.
-
create table 学生表
(
学生id int identity(1,1) not null,
学号 int null,
期中分数 int null,
期末分数 int null
);
insert into 学生表(学号,期中分数,期末分数)
values
(1,60,55),
(2,75,40),
(3,null,85),
(5,86,75),
(6,90,95),
(7,59,90);
这是快速建表及插入SQL语句的代码.
-
我们先来复习一下前面我们分享的聚合函数的使用.
聚合函数是把多行聚集起来合成一行.
select AVG(期末分数) from 学生表;
我们把学生表中所有的期末分数进行了平均数统计.
-
那么如果我们想把学生表全部都显示出来,并且每一行的最后一列都加成全班的平均分怎么样做呢?这个时候,我们就需要使用over() 开窗函数了.
-
如果我们要使用别名的话,记得 as关键在要在over() 开窗函数后面使用.
-
开窗函数over的常用方法
1.为每条数据显示聚合信息.(聚合函数() over())
2.位每条数据提供分组的聚合函数结果(聚合函数() over(partition by 字段) as 别名)
3.与排名函数一起使用(row number() over(orde
r by 字段) as 别名)
我在学习SQL的过程中对于这个开窗函数很是不理解
查找资料后,发现这个描述非常的简单易懂。
资源来自:百度经验
https://jingyan.baidu.com/article/f00622283e7ac4fbd3f0c83d.html