在具有扭曲的表中查找重复值

时间:2013-10-06 16:31:31

标签: sql sql-server duplicates sql-server-2012

我有一个包含许多重复值的数据文件。我希望识别原始值和重复值,并且要并排排列原始值和重复值。

我的数据文件标题与数据一样:

enter image description here

我希望数据如下:

enter image description here

我已经使用以下查询找到了重复值:

SELECT a.[wallet] into KYCNew2
  from [dbo].[KYCNew1] A
GROUP BY a.[wallet]
  HAVING COUNT(*) > 1

仅显示重复值。但是,我不知道如何并排创建原始值和重复值以及它们的相关数据。请问有人帮我吗?

1 个答案:

答案 0 :(得分:1)

row_number()pivot的组合可以做到这一点。您需要事先知道重复的最大数量才能看到所有内容。

Select
  account,
  [1] as path1,
  [2] as path2
From (
  select
    account,
    path,
    row_number() over (partition by account order by path) r
  From
    Dups
  ) x
pivot (
  min(path)
for 
  r in ([1], [2])
) piv

<强> Example Fiddle