如何为SQL Server中的类似记录生成相同的组ID

Min*_*Min 1 t-sql sql-server

我有一个表格,地址和日期,我需要一个具有相同地址和日期的每条记录的唯一ID.这是我需要它看起来像:

     Address       |  Date    |  Group_id
     --------------------------------------
     12 address      1-1-2014       1
     14 address      1-2-2014       2
     14 address      1-2-2014       2
     14 address      1-2-2014       2
     12 address      1-3-2014       3
     12 address      1-3-2014       3
     13 address      1-4-2014       4
     13 address      1-4-2014       4
Run Code Online (Sandbox Code Playgroud)

问题是ROW_NUMBER()OVER(按地址分区,日期)给出了这个结果:

     Address       |  Date    |  Group_id
     --------------------------------------
     12 address      1-1-2014       1
     14 address      1-2-2014       1
     14 address      1-2-2014       2
     14 address      1-2-2014       3
     12 address      1-3-2014       1
     12 address      1-3-2014       2
     13 address      1-4-2014       1
     13 address      1-4-2014       2
Run Code Online (Sandbox Code Playgroud)

此外,Dense_Rank()返回组ID的全部1

想法?

Vig*_*r A 5

取而代之的ROW_NUMBER可以使用DENSE_RANK

试试这个

SELECT Address,Date,Dense_Rank() OVER(Order by Address, Date) 
FROM Table1
Run Code Online (Sandbox Code Playgroud)