1. -- 开窗函数:在结果集的基础上进一步处理(聚合操作)
  2.  
  3. -- Over函数,添加一个字段显示最大年龄
  4. SELECT * ,
  5. MAX(StuAge) OVER ( ) MaxStuAge
  6. FROM dbo.Student;
  7.  
  8. -- Over函数,添加一个字段显示总人数
  9. SELECT * ,
  10. COUNT(StuID) OVER ( ) StuCount
  11. FROM dbo.Student;
  12.  
  13. -- Partition By 分组统计数量
  14. -- 根据性别分组后,统计
  15. SELECT COUNT(*) OVER ( PARTITION BY StuSex ) ,
  16. *
  17. FROM dbo.Student;
  18.  
  19. -- 根据班级分组后,统计、排序
  20. SELECT COUNT(*) OVER ( PARTITION BY Class ORDER BY Height) ,
  21. *
  22. FROM dbo.Student;
  23.  
  24. -- Over函数,添加一个字段显示平均身高
  25. SELECT * ,
  26. AVG(Height) OVER ( ) AgeHeight
  27. FROM dbo.Student;
  28.  
  29. --Row_Rumber()
  30. SELECT ROW_NUMBER() OVER ( ORDER BY StuID DESC ) RowNumber ,
  31. *
  32. FROM dbo.Student
  33.  
  34. --Row_Rumber() 实现分页效果
  35. ;
  36. WITH T AS ( SELECT ROW_NUMBER() OVER ( ORDER BY StuID DESC ) RowNumber ,
  37. *
  38. FROM dbo.Student
  39. )
  40. SELECT *
  41. FROM T
  42. WHERE T.RowNumber BETWEEN 1 AND 3;
  43.  
  44. --Rank() 排名函数,名次相同,跳过
  45. SELECT RANK() OVER ( ORDER BY Height ) ,
  46. *
  47. FROM dbo.Student;
  48.  
  49. --DENSE_Rank() 排名函数,名次相同不跳过
  50. SELECT DENSE_RANK() OVER ( ORDER BY Height ) ,
  51. *
  52. FROM dbo.Student;
  53.  
  54. -- NTILE()函数,参数:记录总数/划分区域 = 每个区域数组,把记录序号放进数组 (平均分组)
  55. SELECT NTILE(3) OVER ( ORDER BY StuSex ) ,
  56. *
  57. FROM dbo.Student;

  

SQL Server 2012 - 开窗函数的更多相关文章

  1. SQL SERVER:开窗函数 SUM() OVER() 数据统计中一例使用

    由于前一段时间胃痛,导致博客园博客都停更了一个月左右.近几天,胃病终于稍微有所好转,决定重新写博文. 前几天,有个朋友刚好问到本人有关 SQL 语句,大致是原表有两列,分别为月份.月份销售额,而需要一 ...

  2. sql server利用开窗函数over() 进行分组统计

    这是一道常见的面试题,在实际项目中经常会用到. 需求:求出以产品类别为分组,各个分组里价格最高的产品信息. 实现过程如下: declare @t table( ProductID int, Produ ...

  3. SQL Server 2012/2016/2017 新增函数

    /************************************************************** SQL Server 2012 新增的函数 ************** ...

  4. SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  5. 10、SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  6. SQL Server 2012新增和改动DMV

    SQL Server 2012新增和改动DMV  系统视图 说明 sys.dm_exec_query_stats (Transact-SQL) 添加了四列,以帮助排除长时间运行的查询所存在的问题. 可 ...

  7. SQL Server 2012大幅增强T-SQL

    SQL Server 2012对T-SQL进行了大幅增强,其中包括支持ANSI FIRST_VALUE和LAST_VALUE函数,支持使用FETCH与OFFSET进行声明式数据分页,以及支持.NET中 ...

  8. SQL Server 2012 实现分页新语法

    最近一直在看SQL Server的书,不过看的都是基础的查询流,查询在工作中用到的最多,所以能正确地查询出想要的数据也是很重要的嘛. 在书上看到在SQL Server 2012新增了一种实现分页的查询 ...

  9. SQL Server 2012复制教程以及复制的几种模式

    简介 SQL Server中的复制(Replication)是SQL Server高可用性的核心功能之一,在我看来,复制指的并不仅仅是一项技术,而是一些列技术的集合,包括从存储转发数据到同步数据到维护 ...

随机推荐

  1. VS2015配置Entity Framework Power Tools Bate4,还有一些使用与注意的地方

    今天使用vs2015重新安装了这个名为Entity Framework Power Tools的插件,由于它只支持到2013,因此需要进行一些操作方能使用 下面是一些参考文档 http://www.c ...

  2. lua的local问题

    1. 初识 使用Local带来错误.自己写了一个递归的函数,结果报错: local fLocal = function(n) ) then return n; else ) end end )) 错误 ...

  3. 双十一问题:kafka消费能力低下原因思考

    抛去cpu.内存等机器原因,在每个分区皆分配一个进程消费的情况下,利用扩机器来提高kafka消费速率已无能为力 此时发现,在实际洪峰时段的消费速率元达不到先前压测时的消费速率 原因思考: 1.洪峰时段 ...

  4. Topic model的变种及其应用[1]

    转: http://www.blogbus.com/krischow-logs/65749376.html   LDA 着实 带领着 Topic model 火了一把. 但是其实我们华人世界内,也不乏 ...

  5. 使用ViewPager和FragmentPagerAdapter实现Tab

    前面我们分别利用ViewPager和Fragment实现了Tab效果.但是使用Fragment实现的Tab不能够左右滑动.如果我们既想使用Fragment又想让Tab能够滑动,那么怎么办呢?这 就是今 ...

  6. C/C++心得-结构体

    先说句题外话,个人认为,基本上所有的高级语言被设计出来的最终目的是降低软件开发难度,提升软件开发人员素质和团队协作能力,降低软件维护的难度.在学习语言的时候,可以从这么方面来推测各种语言语法设计的原因 ...

  7. geos学习笔记:安装和使用

    1.首先在https://trac.osgeo.org/geos下载geos-3.6.2.tar.bz2 解压后 cd geos- ./configue //或选择安装的目录./configure - ...

  8. js中返回上一页

    <a class="btn btn-danger" href="javascript:history.go(-1);">取消</a>

  9. Linux学习总结(十六)系统用户及用户组管理

    先来认识两个文件 /etc/passwd/etc/shadow我们打印出首尾三行,来了解下:每行由:分割为7段,每段含义为:第一段:用户名,比如root 用户,普通用户test,lv,test1第二段 ...

  10. Windows下我喜爱的那些体积小但功能强大的软件

    我还是开门见山的说吧,接下来我给你大家介绍一些Windows上一些小软件,涉及到图片编辑,浏览器下载,文件搜索,音乐下载,文本编辑,视频录制等方面! 一:WinZIP中国 平常我们难免会遇到各种解压压 ...