我有3列的表格。它在第2列和第3列上有重复项。我需要选择重复的行(所有3列)。怎么做?请帮助我。
var1 var2 var3a a a
b a a
c a a
d b b
e c c

以上是表格结构。它具有3个列var1,var2,var3。仅基于列var2和var3,我们必须假定它是重复记录。查找重复项时,我们不应该考虑var1。对不起,对齐。

我使用下面的查询来获取所有具有/不具有重复项但具有识别重复记录的行。但是我不能只得到重复的记录。
select var1,var2,var3,ROW_NUMBER() over(PARTITION BYvar2,var3 order by var2,var3) as rnk from vart
除此之外,我如何获得重复条目之间的最高排名记录?
谢谢。

最佳答案

如果您希望全部重复的行,则可以使用count(*) over()

select var1, var2, var3
from (
      select var1,
             var2,
             var3,
             count(*) over(partition by var2, var3) as dc
      from YourTable
     ) as T
where dc > 1

结果:
var1 var2 var3
---- ---- ----
a    a    a
b    a    a
c    a    a

如果您只想复制所有副本,请改用row_number() over()
select var1, var2, var3
from (
      select var1,
             var2,
             var3,
             row_number() over(partition by var2, var3 order by var1) as rn
      from YourTable
     ) as T
where rn > 1

结果:
var1 var2 var3
---- ---- ----
b    a    a
c    a    a

10-06 07:20
查看更多