SQL RANK() 与 ROW_NUMBER() [英] SQL RANK() versus ROW_NUMBER()

查看:35
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆