SQL Server排名开窗函数概述
发布时间:2023-12-22 21:53:20 所属栏目:MsSql教程 来源:DaWei
导读: SQL Server的排名函数是对查询的结果进行排名和分组,TSQL共有4个排名函数,分别是:ROW_NUMBER、RANK、DENSE_RANK和NTILE。
他们和OVER()函数搭配使用,按照特定的顺序排名。
排名开
他们和OVER()函数搭配使用,按照特定的顺序排名。
排名开
SQL Server的排名函数是对查询的结果进行排名和分组,TSQL共有4个排名函数,分别是:ROW_NUMBER、RANK、DENSE_RANK和NTILE。 他们和OVER()函数搭配使用,按照特定的顺序排名。 排名开窗函数可以单独使用ORDER BY 语句,也可以和PARTITION BY同时使用。 PARTITION BY用于将结果集进行分组,开窗函数应用于每一组。 ODER BY 指定排名开窗函数的顺序。在排名开窗函数中必须使用ORDER BY语句。 1、ROW_NUMBER:行号 为每一组的行按顺序生成一个唯一的序号。 序列从1开始,按照顺序依次 +1 递增。分组内序列的最大值就是该分组内的行的数目。 ROW_NUMBER ( ) OVER ( [ PARTITION_BY_clause ] order_by_clause ) 2、RANK:排名 也为每一组的行生成一个序号,但如果按照ORDER BY的排序,如果有相同的值会生成相同的序号,并且接下来的序号是不连续的。 例如,班级中,A,B分数都是100分,C的分数是90分,那么A和B的排名是1,C的排名是3。 3、DENSE_RANK:密集排名 和RANK(排名)类似,不同的是如果有相同的序号,那么接下来的序号不会间断。 例如,班级中,A,B分数都是100分,C的分数是90分,那么A和B的排名是1,C的排名是2。 4、NTILE :分组排名 按照指定的数目将数据进行分组,并为每一组生成一个序号。 特别地,NTILE(4) 把一个分组分成4份,叫做Quartile。例如,以下脚本显示各个排名函数的执行结果: select Department ,LastName ,Rate ,row_number() over(order by Rate) as [row number] ,rank() over(order by rate) as rate_rank ,dense_rank() over(order by rate) as rate_dense_rank ,ntile(4) over(order by rate) as quartile_by_rate from #data (编辑:扬州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 如何保留SQL Server存储过程修订的历史记录
- sql-server – 总是有一个整数列作为主键的缺点是什么?
- sql-server – 我可以启动存储过程并立即返回而不等待它完成
- sql的substring函数功能是什么,如何使用?
- SQL server中怎样做锁表和解锁表的操作?
- master数据库损坏怎么办?有什么解决方法?
- sql-server – 使用SSD时,数据库设计中聚集索引的概念是否合
- sql-server – SQL Server中是否存在“包含文件”的概念?
- sql-server – SQL Server需要分区数据,但只有标准版
- sql-server – 将SQL Server实例根目录放在单独的驱动器上是
推荐文章
站长推荐