当前位置: 首页 > news >正文

SQL SERVER的排名函数

ROW_NUMBER() :给整体结果集中的行标明序号,依次加1


RANK():先分组(也可以不分组),然后每组的行各自标明序号,依次加1,假如该组中排序列的值相同,就会有一些行拥有相同的序号,但接下来的行的序号会不连贯。比如有两行的序号是并列第1,则第3行的序号是3而不是2。


DENSE_RANK():接近RANK(),区别是虽然也有相同序号,但排名是连贯的。比如有两行的序号是并列第1,则第3行的序号是2而不是3。


NTILE(n):将结果集分成n等份,然后每等份里面的行标明序号,同一份里的序号都是相同的(比如说,分成4等份,份1里所有行的序号都是1,份2里所有行的序号都是2,以此类推);或者先分组,然后每组分成n等份,等份里面再标明序号。(什么情况下会用到呢?)

USE AdventureWorks;
GO

SELECT c.FirstName, c.LastName
,ROW_NUMBER() OVER (ORDER BY a.PostalCode) AS 'Row Number '
,RANK() OVER (ORDER BY a.PostalCode) AS 'Rank '
,DENSE_RANK() OVER (ORDER BY a.PostalCode) AS 'Dense Rank'
,NTILE(4) OVER (ORDER BY a.PostalCode) AS 'Quartile'
,s.SalesYTD, a.PostalCode
FROM Sales.SalesPerson s
INNER JOIN Person.Contact c ON s.SalesPersonID = c.ContactID
INNER JOIN Person.Address a ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL AND SalesYTD <> 0;
FirstName LastName Row Number Rank Dense Rank Quartile SalesYTD PostalCode

Maciej

Dusza

1

1

1

1

4557045

98027

Shelley

Dyck

2

1

1

1

5200475

98027

Linda

Ecoffey

3

1

1

1

3857164

98027

Carla

Eldridge

4

1

1

1

1764939

98027

Carol

Elliott

5

1

1

2

2811013

98027

Jauna

Elson

6

6

2

2

3018725

98055

Michael

Emanuel

7

6

2

2

3189356

98055

Terry

Eminhizer

8

6

2

3

3587378

98055

Gail

Erickson

9

6

2

3

5015682

98055

Mark

Erickson

10

6

2

3

3827950

98055

Martha

Espinoza

11

6

2

4

1931620

98055

Janeth

Esteves

12

6

2

4

2241204

98055

Twanna

Evans

13

6

2

4

1758386

98055

相关文章:

  • live555 解析
  • ORA-07445错误修正
  • ajax3
  • 英文名
  • 在 Android 中进程的级别有哪些?
  • UNION ALL导致的ORA-07445错误
  • 计算机网络: IP地址,子网掩码,默认网关,DNS服务器详解
  • 纠结+纠结
  • HTTP 返回状态代码详细解释
  • gcrawler:一个基于gevent的简单爬虫框架
  • Struts2+MySQL登录注册
  • Sql 连接串
  • java类与对象,用程序解释
  • 代码生成器修改备注
  • 常用的字符串方法 String ;
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Java到底能干嘛?
  • Js基础知识(四) - js运行原理与机制
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • MySQL数据库运维之数据恢复
  • Protobuf3语言指南
  • Vue2.0 实现互斥
  • 初探 Vue 生命周期和钩子函数
  • 机器学习 vs. 深度学习
  • 简单数学运算程序(不定期更新)
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端_面试
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 双管齐下,VMware的容器新战略
  • 问题之ssh中Host key verification failed的解决
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • (11)MSP430F5529 定时器B
  • (175)FPGA门控时钟技术
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (2)Java 简介
  • (ibm)Java 语言的 XPath API
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (排序详解之 堆排序)
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)Windows2003安全设置/维护
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .htaccess配置重写url引擎
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net Core和.Net Standard直观理解
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .net 提取注释生成API文档 帮助文档
  • .net对接阿里云CSB服务
  • .NET企业级应用架构设计系列之结尾篇
  • .Net语言中的StringBuilder:入门到精通
  • .Net中ListT 泛型转成DataTable、DataSet
  • // an array of int
  • @Transactional类内部访问失效原因详解
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网