如何为表中的列中的每个重复值分配唯一值

时间:2018-11-26 11:39:58

标签: sql sql-server sql-server-2016

我的数据如下表

Table having duplicate data

现在我想为每个重复值生成唯一的排名值,例如下面的1,2,3,4等

Table with unique rank value

如何在SQL Server 2016中执行此操作?

2 个答案:

答案 0 :(得分:3)

您似乎正在寻找row_number()

select t.*,
       row_number() over (partition by id, name order by deptid) as ranking
from t;

答案 1 :(得分:0)

您也可以使用DENSE_RANK,

select table.*,
   DENSE_RANK() over (order by id, name ,deptid) as RANK
from table;