SQL RANK() 与 ROW_NUMBER() [英] SQL RANK() versus ROW_NUMBER()
本文介绍了SQL RANK() 与 ROW_NUMBER()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我对这些之间的差异感到困惑.运行以下 SQL 会得到两个相同的结果集.有人可以解释一下这些差异吗?
I'm confused about the differences between these. Running the following SQL gets me two idential result sets. Can someone please explain the differences?
SELECT ID, [Description], RANK() OVER(PARTITION BY StyleID ORDER BY ID) as 'Rank' FROM SubStyle
SELECT ID, [Description], ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) as 'RowNumber' FROM SubStyle
推荐答案
ROW_NUMBER : 为每行返回一个唯一编号,从 1 开始.对于具有重复值的行,随机分配编号.
ROW_NUMBER : Returns a unique number for each row starting with 1. For rows that have duplicate values,numbers are arbitarily assigned.
Rank : 为每行分配一个唯一编号,从 1 开始,具有重复值的行除外,在这种情况下,分配相同的排名并且每个重复排名的序列中都会出现一个间隙.
Rank : Assigns a unique number for each row starting with 1,except for rows that have duplicate values,in which case the same ranking is assigned and a gap appears in the sequence for each duplicate ranking.
这篇关于SQL RANK() 与 ROW_NUMBER()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文