用法一:与ROW_NUMBER()函数结合用,给结果进行排序编号,如图:

代码如下:

SELECT ROW_NUMBER() over(order by RequiredDate) num
,* from [Northwind].[dbo].[Orders]

用法二:跟聚合函数一起使用,利用over子句的分组效率比group by子句的效率更高。

在Northwind数据库的订单表Orders中查询"订单id","客户id","运费","所有订单的总数",“每一个客户的总运费”,“所有客户的总运费”,“每一个客户的平均运费”,“所有客户的平均运费”,"每一个客户所有订单中最大的运费","所有客户中最大运费","每一个客户所有订单中最小的运费","所有客户中最小运费",如下图:

代码如下:

  SELECT  [OrderID] --订单id
,[CustomerID] --客户id
,[Freight] --运费
,COUNT(OrderID) over() as totalNum --一所有订单的总数
,SUM(Freight) over(partition by customerid) as cusTotalFreight --每一个客户的总运费
,SUM(Freight) over() as totalFreight --所有客户的总运费
,AVG(Freight) over(partition by customerid) as cusAvgFreight --每一个客户的平均运费
,AVG(Freight) over() as avgFreight --所有客户的平均运费
,MAX(Freight) over(partition by customerid) as cusMaxFreight --每一个客户所有订单中最大的运费
,MAX(Freight) over() as maxFreight --所有客户中最大运费
,MIN(Freight) over(partition by customerid) as cusMinFreight --每一个客户所有订单中最小的运费
,MIN(Freight) over() as minFreight --所有客户中最小运费
FROM [Northwind].[dbo].[Orders]

总结:运用开窗函数over()再结合聚合函数,可以使表格向右扩张,并进行一些数据的统计

Sql server 开窗函数over()的语法的更多相关文章

  1. SQL ServerOVER 子句,over开窗函数,SQL SERVER 开窗函数

    https://technet.microsoft.com/zh-cn/library/ms189461(v=sql.105).aspx http://www.cnblogs.com/85538649 ...

  2. 【转】SQL SERVER 开窗函数简介

    在SQL SERVER 2005/2008支持两种排名开窗函数和聚集开窗函数. 以SQL SERVER中分面页为例,按时间顺序列出定单号. WITH OrderInfo AS ( SELECT ROW ...

  3. SQL SERVER开窗函数

    作为一名开发人员来讲,我感觉在职场白混了好多年,可能是自己真的没有进取的精神吧,看了<程序员的SQL金典>这本电子书,真的让我学到了不少知识,真心喜欢这本电子书,书中讲解的内容比较好懂,也 ...

  4. Sql Server 开窗函数Over()的使用

    利用over(),将统计信息计算出来,然后直接筛选结果集 declare @t table( ProductID int, ProductName ), ProductType ), Price in ...

  5. SQL Server - 开窗函数

    -- 开窗函数:在结果集的基础上进一步处理(聚合操作) SELECT * FROM dbo.Student S# Sname Sage Ssex ---------- ---------- ----- ...

  6. SQL Server开窗函数之OVER子句、PARTITION BY 子句

    开窗函数与聚合函数一样,都是对行的集合组进行聚合计算.它用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同 ...

  7. 数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数

    SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函 ...

  8. SQL Server CONVERT() 函数(转)

    定义和用法 CONVERT() 函数是把日期转换为新数据类型的通用函数. CONVERT() 函数可以用不同的格式显示日期/时间数据. 语法 CONVERT(data_type(length),dat ...

  9. Sql Server REPLACE函数的使用;SQL中 patindex函数的用法

    Sql Server REPLACE函数的使用 REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式. 语法REPLACE ( ''string_replace1'' ...

随机推荐

  1. python网络编程之网络主机信息

    功能: 获取设备名称 方法: gethostname() 参数: 返回值:hostname(string) 功能: 获取设备ipv4地址 方法: gethostbyname() 参数: hostnam ...

  2. js提交form表单

    <form action="/Enterprise/member" id="sendinviteid" method="post"&g ...

  3. git 恢复丢失的文件

    务必进入当前controller下面,才能恢复 git checkout HEAD TestController.class.php

  4. MC- 交易并设置止损

    using System; using System.Drawing; using System.Linq; using PowerLanguage.Function; using ATCenterP ...

  5. Python多进程multiprocessing使用示例

    mutilprocess简介 像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多. import multipr ...

  6. jquery-ui-multiselect 的使用

    @model Gd.NetSign.Controllers.DTO.WsaleFundManageDTO @{ ViewBag.Title = "ShowDUYUN"; //Lay ...

  7. XueTr 0.45 (手工杀毒辅助工具) 绿色版

    软件名称: XueTr 0.45 (手工杀毒辅助工具)软件语言: 简体中文授权方式: 免费软件运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 3.3MB图片预览: ...

  8. 1.(1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的double型变量

    //接口 ShapePara package d922B; public interface ShapePara { int getArea(); int getCircumference(); } ...

  9. mysql备份并自动压缩命令

    #! /bin/bash mysqldump -uroot -p'password' databasename | gzip > /home/backup/database_`date +%Y% ...

  10. Qt主窗体显示最前

    在delphi中使用Application.BringToFront;可以保证当前程序显示在最前. 然而今天在Qt中,没有类似函数供调用. 尝试了activeWindow,show,showNorma ...