表格如下:
id name 1 tom 2 bob 3 tom 4 tom 5 harry
我正在寻找一个导致以下结果的查询:
id name duplicateposition 1 tom 1 2 bob 1 3 tom 2 4 tom 3 5 harry 1
因此第一个tom的重复位置是1,第二个tom是2,第三个tom是3.第一个bob是1,第一个tom是1.是否有一个简单的查询来执行此操作?
这是我的尝试:
SELECT id, name, count(id) from table
我对sql有点新意,所以这是我最好的镜头.
最佳答案 您可以执行以下操作.它按名称对数据进行分区,并在分区中分配一个数字.忘记提到我在SQL Server 2012中这样做了.
select *,
row_number() over (partition by name order by id) as DuplicatePosition
from test
order by id