忽略列表中的第一个副本

时间:2014-11-12 09:05:58

标签: sql sql-server function duplicates

我对SQL很陌生,但我设法将我的select语句用于显示完整路径,MD5checksum和MD5cheksum出现次数的工作。现在我想得到它,以便代码在第一次出现MD5checksum时忽略。

这是我当前的陈述;

SELECT F.Fullpath 
    ,F.MD5Checksum
    ,[tbl.Finance].count 
FROM [tbl.Finance] F
INNER JOIN
(
    SELECT MD5Checksum
    ,count(*) as Count 
    FROM [tbl.Finance]
    GROUP BY MD5Checksum
    HAVING COUNT(*) > 1
) [tbl.Finance] 
    ON F.MD5Checksum = [tbl.Finance].MD5Checksum
ORDER BY MD5Checksum

如果我能得到任何帮助就会很棒。 感谢

1 个答案:

答案 0 :(得分:1)

WITH CTE AS(
SELECT 
  F.Fullpath 
 ,F.MD5Checksum
 ,[tbl.Finance].count
 ,ROW_NUMBER() OVER (PARTITION BY F.MD5Checksum ORDER BY F.MD5Checksum) rn
FROM [tbl.Finance] F
inner join 
(select 
 MD5Checksum
,count(*) as Count 
 from [tbl.Finance]
 group by MD5Checksum
 having Count(*) > 1
 ) [tbl.Finance] on F.MD5Checksum = [tbl.Finance].MD5Checksum)
SELECT * FROM CTE WHERE rn>1