sql语句开窗函数over的使用

  • 原创
  • |
  • 浏览:4913
  • |
  • 更新:
  • |
  • 标签:函数 

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

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

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

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

工具/原料

  • sqlserver
  • sqlite
  • access
  • oracle
  • mysql

方法/步骤

  1. 1

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

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

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

  2. 2

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

  3. 3

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

    sql语句开窗函数over的使用
  4. 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. 4
    该信息非法爬取自百度经验
  6. 5

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

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

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

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

    sql语句开窗函数over的使用
  7. 6

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

    sql语句开窗函数over的使用
  8. 7

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

    sql语句开窗函数over的使用
  9. 8

    开窗函数over的常用方法

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

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

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

    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部
相关标签函数