如何在sql 2008中使用RANK()获得DENSE_RANK()结果

时间:2013-12-31 23:48:38

标签: sql sql-server-2008

Category ID     Rank_Number     Rank_Number1
AA      x   1           1
AA      x   1           1
AA      x   1           1
AA      y   4           2
AA      y   4           2
AA      y   4           2
AA      z   7           3
AA      z   7           3
AA      z   7           3

我使用SQL 2008,所以我不能使用DENSE_RANK()。我正在使用以下代码,它给出了Rank_Number。 (不是我想要的方式)

Select *,  RANK() OVER(PARTITION BY Category ORDER BY ID)    AS Rank_Number

我的问题:

如何获得Rank_Number1中的结果?

1 个答案:

答案 0 :(得分:1)

自SQL Server 2005以来

DENSE_RANK()

Select *,  DENSE_RANK() OVER(PARTITION BY Category ORDER BY ID)    
from table1
AS Rank_Number