您的位置首页生活百科

sql语句开窗函数over的使用

sql语句开窗函数over的使用

的有关信息介绍如下:

sql语句开窗函数over的使用

我们这次分享什么是开窗函数,在前面我们也学习了如何使用聚合函数.

如果你不懂什么是聚合函数可以查看一些我发布的其他经验.

聚合函数是把很多行合并为一行.

而开窗函数是把一行分为多行.

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

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

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

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

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

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(order by 字段) as 别名)