【问题标题】:Select numbered list of duplicate entries选择重复条目的编号列表
【发布时间】:2011-09-05 11:47:39
【问题描述】:

非常简单的例子:

假设我有这张桌子:

ID         Name
GUID1      John
GUID2      John
GUID3      John
GUID4      John
GUID5      Jane
GUID6      Jane

我想做一个选择,它为每次出现的同名分配一个计数器(每次从 1 开始)。即:

ID         Name     Counter
GUID1      John     1
GUID2      John     2
GUID3      John     3
GUID4      John     4
GUID5      Jane     1
GUID6      Jane     2

这样键(名称,计数器)形成一个唯一的组合。

谢谢
卡尔

【问题讨论】:

    标签: sql-server select duplicates sql-server-2008-r2


    【解决方案1】:
    declare @T table(ID varchar(10), Name varchar(10))
    insert into @T values
    ('GUID1',      'John'),
    ('GUID2',      'John'),
    ('GUID3',      'John'),
    ('GUID4',      'John'),
    ('GUID5',      'Jane'),
    ('GUID6',      'Jane')
    
    select
      ID,
      Name,
      row_number() over(partition by Name order by ID) as Counter
    from @T
    order by ID
    

    【讨论】:

      猜你喜欢
      • 2022-08-03
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-22
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      相关资源
      最近更新 更多