Sql server SQL Server-生成分区id的窗口函数?

Sql server SQL Server-生成分区id的窗口函数?,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,我想要一个为每个分组生成id号的查询 如果我有一张像这样的桌子 +------+------+ | Col1 | Col2 | +------+------+ | 1 | a | | 1 | a | | 1 | a | | 2 | b | | 2 | b | | 3 | c | +------+------+ 如何在col1中生成数字-以便“a”的每个值始终生成相同的id 我可以想象它看起来像: select What_i

我想要一个为每个分组生成id号的查询

如果我有一张像这样的桌子

+------+------+
| Col1 | Col2 |
+------+------+
|    1 | a    |
|    1 | a    |
|    1 | a    |
|    2 | b    |
|    2 | b    |
|    3 | c    |
+------+------+
如何在col1中生成数字-以便“a”的每个值始终生成相同的id

我可以想象它看起来像:

select What_is_this_Called() over (partition by col2 order by col2) as col1 
    ,col2
from myTable
返回结果集分区内的行的排名,排名中没有任何间隔。一行的秩是一加上位于所讨论行之前的不同秩的数量

示例:

SELECT DENSE_RANK() OVER(ORDER BY col2) AS col1, col2 
FROM myTable