sql语句开窗函数over的使用

2025-12-29 20:42:29

1、我的电脑是Windows7 64位,所以我安装的是Sql server2008 r2(64位).

大伙安装的时候也一定要记得看一下自己的操作系统是多少位.你是32位操作系统的就安装32位的Sqlserver 版本不限制.  2005 2012都可以.

当然,我们的Sql语句在很多数据库中都是通用的,比如像Mysql数据库 Access数据库. Oracle数据库.  Sqlite数据库 .甚至在我们的Excel中也可以使用Sql语句.

2、废话不多说,在我的Sqlserver中新建一个表和一些数据,方便我们学习后面的over开窗函数. 如果你是其他数据库也是这个道理,也是类似的操作方法.我用的是微软Sqlserver数据库.

3、先新建一个和我一样的数据表,一定要记得动起来噢.

sql语句开窗函数over的使用

4、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语句的代码.

sql语句开窗函数over的使用

5、我们先来复习一下前面我们分享的聚合函数的使用.

聚合函数是把多行聚集起来合成一行.

select AVG(期末分数) from 学生表;

我们把学生表中所有的期末分数进行了平均数统计.

sql语句开窗函数over的使用

6、那么如果我们想把学生表全部都显示出来,并且每一行的最后一列都加成全班的平均分怎么样做呢?这个时候,我们就需要使用over() 开窗函数了.

sql语句开窗函数over的使用

7、如果我们要使用别名的话,记得 as关键在要在over() 开窗函数后面使用.

sql语句开窗函数over的使用

8、开窗函数over的常用方法

1.为每条数据显示聚合信息.(聚合函数() over())

2.位每条数据提供分组的聚合函数结果(聚合函数() over(partition by 字段) as 别名)

3.与排名函数一起使用(row number() over(order by 字段) as 别名)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢