关键字:sql server窗口函数、分析函数、四大窗口函数

特别细的从零讲解参考:https://www.cnblogs.com/CareySon/p/3411176.html

更多常用窗口函数:https://www.cnblogs.com/gered/p/11088845.html

1.row_number()  over( partition by column order by column)

(1)测试数据

  

(2)根据程序使用row_number() over()排序

  

(3)说明:即使相同分数,也会按排序(这里用到的是默认聚集索引(id字段)排序)

(4)至于row_number()  over(partition by column order by column) 加上分区的这种,这里就不演示了

(1-3)中演示的是以所有数据为整体排序,如果用上partition by 字段名分区的,即以分区字段为一个整体排序,分区字段有10个不同的值就有10个从1开始的排序。

2.rank() over( partition by column order by column)

  与row_number 一样,其区别在于如果是相同分数,则会给出相同名次。如图1-4名,结果排名回事1,2,2,4,这里也同样不演示分区的情况了。

结果图如下:

3.dense_rank() over( partition by column order by column)

  与rank() over()一样,其区别是,如果是1-4名中有相同名次的也会给同名次,但是其下一个名次会顺序承接上一个值+1.也就是会出现1,2,2,3这样的结果

4.ntile(number) over( partition by column order by column)

  其实根据 over里面的分组与排序,把所有数据分组,先看一下结果图

  

在图中,一共14行数据,我把其按照n1列排序后,分为3组。平均分下来只有3*4=12啊,那么多余的2行怎么分的呢?

如果行数平均划分后还有余行,那么就把行分在最前面的几组上。
比如我们的结果有7行,要分为3组。
那么第一组3行,第二组2行,第三组2行。
如果我们结果有14行,平均分为3组。
那么第一组5行,第二组5行,第三组4行。
依此类推。 所以,我们的14行,平分每个组4行,还多2行会1行加在1组上,1行加在2组上。

5、top colomn 与 top  with ties

这个top就不说了,大家都知道什么意思,并且在CRUD里面都可以用到。

top ties的作用是,把所有数据集中order by 字段与top中的最后一行order by 字段数据值相同的数据也一起筛选出来。

top ties的效果给大家演示一下,如图:

(1)如果直接top(2)是这样的

(2)加上ties的效果

6.tablesample :返回表部分样本

  

  

												

(1.2)DML增强功能-4大排名函数与top ties/tablesample的更多相关文章

  1. (1.1)DML增强功能-CTE

    1.CTE的通用形式 WITH temp_name as ( CTE查询结果集 ) 释义: (1)with/as :关键字 (2)temp_name:为CTE临时使用名称,可以看初学者做是一个临时表 ...

  2. (1.5)DML增强功能-try catch及事务控制

    一.事务控制与Try Catch结合 当 SET XACT_ABORT 为 ON 时,如果执行 Transact-SQL 语句产生运行时错误,则整个事务将终止并回滚. 当 SET XACT_ABORT ...

  3. (1.4)DML增强功能-Output

    Output在CRUD的区别 1.对于INSERT,可以引用inserted表以查询新行的属性.在insert into table output . 2.对于DELETE,可以引用deleted表以 ...

  4. (1.3)DML增强功能-Apply、pivot、unpivot、for xml path行列转换

    深入了解行列转换请参考另一篇文章:https://www.cnblogs.com/gered/p/9271581.html 总结: 1.apply一般形式 --基本形式 SELECT a FROM d ...

  5. WPF4.5 中的新增功能和增强功能的信息

    本主题包含有关 Windows Presentation Foundation (WPF) 版本 4.5 中的新增功能和增强功能的信息. 本主题包含以下各节: 功能区控件 改善性能,当显示大时设置分组 ...

  6. 宣布发布 Windows Azure 导入/导出服务的预览版以及 Web 和移动解决方案场景的若干增强功能

    客户评估基于云的存储解决方案时,面临的挑战之一是以经济高效.安全快速的方式从 Blob 存储区移进和移出大量数据.今天,我们很高兴地宣布发布 Windows Azure 导入/导出的预览版,这款新服务 ...

  7. Python 命令行之旅:深入 click 之增强功能

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  8. 12c分区增强功能,新功能(文档ID 1568010.1)

    12c Partitioning Enhancements, New Features (Doc ID 1568010.1) APPLIES TO: Oracle Database - Enterpr ...

  9. virtualbox安装增强功能时【未能加载虚拟光盘】

    virtualbox安装增强功能时[未能加载虚拟光盘] 今天在使用Virtualbox中的Ubuntu虚拟机,想安装增强功能来实现更改分辨率,但是在安装时出错:未能加载虚拟光驱 VBoxsGuestA ...

随机推荐

  1. 4 kafka集群部署及kafka生产者java客户端编程 + kafka消费者java客户端编程

    本博文的主要内容有   kafka的单机模式部署 kafka的分布式模式部署 生产者java客户端编程 消费者java客户端编程 运行kafka ,需要依赖 zookeeper,你可以使用已有的 zo ...

  2. 在你开发完brew应用之后 ,你又如果将brew应用由编译成可以部署到brew真机上的程序包呢

    参考自:http://blog.csdn.net/feimor/article/details/6239281 一.准备工作(安装工具) 先安装Visual C++ 6.0,再安装BREW SDK v ...

  3. Java之类型的转换

    1.String 类型转化为 int 类型,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换. int a = Integer.parseInt(st ...

  4. 说说NAND FLASH以及相关ECC校验方法

    Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次性地将 ...

  5. js中解析json时候的eval和$.parseJSON()的区别以及JSON.stringify()

    1.第一个区别是:安全性 json格式非常受欢迎,而解析json的方式通常用JSON.parse()但是eval()方法也可以解析,这两者之间有什么区别呢?      JSON.parse()之可以解 ...

  6. 为什么说在js当中所有类的父类是Object类

    代码如下所示: function Parent(add,net,no,teacher) { this.add = add; this.net = net; this.no = no; this.tea ...

  7. poj_2441 状态压缩dp

    题目大意 N头牛,M个谷仓,每个牛c都有它喜欢的若干个谷仓,现在要将这N头牛安排进谷仓,使得每个牛都位于它喜欢的谷仓,而每个谷仓只能有一头牛.求安排的方案总数.N, M <= 20 题目分析 将 ...

  8. ajax jquery校验用户是否已经注册

    服务端代码这里就不贴了 html代码比较简单,需要自行引入jquery库 <body> 请输入用户名:<input type="text" id="us ...

  9. JS-cookie封装

    智能社学习笔记 <script type="text/javascript"> /*****设置cookie*****/ function setCookie(name ...

  10. 使用MAT分析Java内存

    Overview MAT(Memory Analyzer Tool) 是一个JAVA Heaper分析器,可以用来分析内存泄露和减少内存消耗.分析Process showmap中的/dev/ashme ...