zoukankan      html  css  js  c++  java
  • SQL Server开窗函数之OVER子句、PARTITION BY 子句

    开窗函数与聚合函数一样,都是对行的集合组进行聚合计算。它用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。
    开窗函数的调用格式为:函数名(列) OVER(选项)。
    第一大类:聚合开窗函数====》聚合函数(列) OVER (选项),这里的选项可以是PARTITION BY子句,表示根据PARTITION BY后面的字段分组。
    第二大类:排序开窗函数====》排序函数(列) OVER (选项),这里的选项可以是ORDER BY子句,也可以是PARTITION BY子句+ORDER BY子句,但不可以只是PARTITION BY子句。

    例1:

    1 -- 通过id_parent排序后并得到一个序号列
    2 select row_number() over(order by id_parent) as rownumber,* from COM_datadictionaryInfo where id_parent is not null

    例2:

    1 -- 通过id_parent分组后并得到每组的记录数
    2 select count(*) over(partition by id_parent) as rownumber,* from COM_datadictionaryInfo where id_parent is not null

    例3:

    1 -- 通过id_parent分组、level排序后得到每组的序列号
    2 select row_number() over(partition by id_parent order by level) as rownumber,* from COM_datadictionaryInfo where id_parent is not null

  • 相关阅读:
    数据类型
    python安装
    计算机基础
    Ajax--1
    ASP.net+MVC--2
    More lumber is required
    History Grading
    strcmp() Anyone?
    How Many Points of Intersection?
    Remember the Word
  • 原文地址:https://www.cnblogs.com/zhuyongblogs/p/5141389.html
Copyright © 2011-2022 走看看