over() 开窗函数

排名函数必须和over()一起使用,所以先了解over()。

OVER 子句定义查询结果集内的窗口或用户指定的行集。 然后,开窗函数将计算窗口中每一行的值。

您可以将 OVER 子句与函数一起使用,以便计算各种聚合值,例如移动平均值、累积聚合、运行总计或每组结果的前 N 个结果。

 select *,COUNT(*) over() '全班人数' from   Student 

  select *,COUNT(*) over(partition by Ssex) '性别人数' from   Student  --over()中加入partition by Ssex表示 按Ssex字段分组 男女分别为4人。

排名函数

4种排名:1.ROW_NUMBER() , 2.RANK(), 3.dense_rank(), 4.NTILE(N)

row_number() over(order by field) 根据over中order by 字段进行排名 输出结果为有序的行号

rank() over(order by field) 根据over中order by 字段进行排名 输出结果为排名序号有并列而且会断号

dense_rank() over(order by field) 根据over中order by 字段进行排名 输出结果为排名序号有并列不会断号

ntile(N) over(order by field) ) 根据over中order by 字段进行排名 并根据ntile(N)中类型为int参数N进行分组

 select *,ROW_NUMBER() over(order by year(sage)) 'rownumber行号',
RANK() over(order by year(sage)) 'rank有并列而且会出现断号',
dense_rank() over (order by year(sage)) 'dense_rank密集排名',
NTILE(4) over(order by year(sage)) '分组排名' from Student

也可以在over中加入partition by

  select *,ROW_NUMBER() over(partition by year(sage)  order by year(sage)) 'rownumber行号'  ,
RANK() over( partition by year(sage) order by year(sage)) 'rank有并列而且会出现断号' ,
dense_rank() over ( partition by year(sage) order by year(sage)) 'dense_rank密集排名',
NTILE(4) over(partition by year(sage) order by year(sage)) '分组排名'from Student

补充:with ties

指定从基本结果集中返回附加的行,这些行包含与出现在 TOP n (PERCENT) 行最后的 ORDER BY 列中的值相同的值。

  select top 3 with ties  * from Student order by year(sage) --只取前3行,如果最后第3行中sage的年份和后面的年份相同,则附加随后的行

TSQL基础(二)的更多相关文章

  1. T-SQL基础(二)之关联查询

    在上篇博文中介绍了T-SQL查询的基础知识,本篇主要介绍稍微复杂的查询形式. 表运算符 表运算符的作用是把为其提供的表作为输入,经过逻辑查询处理,返回一个表结果.SQL Server支持四个表运算符: ...

  2. 【T-SQL基础】01.单表查询-几道sql查询题

    概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...

  3. 【T-SQL基础】02.联接查询

    概述: 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础 ...

  4. 【T-SQL基础】03.子查询

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 ...

  5. 【2017-03-10】T-sql基础语句及条件,高级查询

    一.T-sql基础语句 1.创建数据库:create database 数据库名  (不能中文,不能数字开头,不能符号开头) 2.删除数据库:drop database 数据库名 3.选择数据库:us ...

  6. T-SQL——基础语法

    目录 0. 定义变量 1. 批处理 2. 条件逻辑--IF 3. 逻辑分支--CASE 4. 循环语句--WHILE 5. 附录--关于CASE表达式的实现函数 6. 参考 shanzm-2020年1 ...

  7. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  8. Bootstrap <基础二十九>面板(Panels)

    Bootstrap 面板(Panels).面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 <div> 元素添加 class .panel 和 class .pa ...

  9. Bootstrap <基础二十八>列表组

    列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...

随机推荐

  1. 在SQL Server 2014下面使用的SQL2000的Northwind和Pubs示例数据库

    在SQL Server 2014下面使用的SQL2000的Northwind和Pubs示例数据库 http://files.cnblogs.com/files/lxzhangying/SQl2000S ...

  2. 教你50招提升ASP.NET性能(十六):把问题仍给硬件而不是开发人员

    (27)Throw hardware at the problem, not developers 招数27: 把问题仍给硬件而不是开发人员 As developers, we often want ...

  3. stm32的DFU使用方法

    stm32的dfu看上去是个很高级的东西,似乎可以通过USB给内部flash.外部spi flash.外部nor等东西刷写数据.把数据读出来,但是用了一下感觉确实有点麻烦. 先不管原理是怎样的,使用方 ...

  4. 解决Android上的QPython不能import urllib的问题

    试用了一下QPython,感觉很强大,Kivy也包含进去了,下载一些第三方库也很方便,相对于SL4A来说确实先进了很多. 但是很快发现不能import urllib,提示大概是这样的内容: No mo ...

  5. Codeforces Round #277 (Div. 2) D. Valid Sets 暴力

    D. Valid Sets Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/486/problem ...

  6. C#类索引器的使用

    索引器提供了一种可以让类被当作数组进行访问的方式.在C#中,类索引器是通过this的属性实现的.index.ToString("D2")将index转换成一个具有两个字符宽度的字符 ...

  7. 怎样配置Tomcat环境变量

    JDK环境变量配置:      假设你的安装JDK在C盘里,如:C:\Program Files\Java\jdk1.6.0_05,那么就在系统变量里(当然也能够在用户变量里)点新建:      变量 ...

  8. Android APK方式换肤实现原理

    现在很多APP都有换肤的功能,例如微博,QQ等应用.这些应用的换肤原理是什么? 在用微博的时候,不难发现,当你要换肤时,先下载并安装一个皮肤apk,然后选择这个皮肤,就可以了. 这种方式就是把皮肤打包 ...

  9. 具体解释Android中AsyncTask的使用

    在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Handler模式须要为每个任务创建一个新的线程,任务完毕后通过Handler实例向UI线程发送消息,完毕界面的更新 ...

  10. android140 360 黑名单 启动service和分页加载

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...