关键字: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. MySQL初始配置
  2. MD5加密、时间戳转换、base64算法加密、解密
  3. [Unity3D插件]2dtoolkit系列二 动画精灵的创建以及背景图的无限滚动
  4. CSS揭秘读书笔记 (一)
  5. fedora yum 清缓存
  6. Python基础学习笔记(一)入门
  7. poj1258 Agri-Net (prim+heap)
  8. 只显示 前100个字 java 实现截取字符串!使用! <c:if test="${fn:length(onebeans.info)>100 }">${ fn:substri
  9. 《c程序设计语言》读书笔记--统计字符数
  10. addListener添加事件监听器,第三个参数useCapture (Boolean) 的作用
  11. 将CGPoint、CGSize、CGRect等放进数组的方法
  12. python爬虫第四天
  13. 忽略 iconv 转码错误导致输出中断
  14. python 进程池Pool的apply_async方法以及一些需要注意的地方
  15. URL参数编码
  16. HTML、CSS知识点,面试开发都会需要--No.1 HTML
  17. hdu2243 考研路茫茫——单词情结【AC自动机】【矩阵快速幂】
  18. 大数据【六】ZooKeeper部署
  19. Atom组件
  20. Chrome Developer Tools 中的 Preview 不显示 HTML 的问题

热门文章

  1. log4j配置 logging.xml (转载)
  2. _mysql_exceptions.ProgrammingError:(2014, "commands out of sync; you can't run this command now")
  3. 记录下自己常用的全框架HTML代码
  4. PHPCMS v9在后台文章管理列表添加类别
  5. J2EE开发推荐工具
  6. NodeJS-003-自动刷新
  7. GIS-011-Cesium 使用 IIS设置
  8. python2.0_s12_day12_html介绍
  9. django实现瀑布流、组合搜索、阶梯评论、验证码
  10. 【VUE】Mac下vue 开发环境搭建,以及目录结构