【问题标题】:SQL query to find duplicates查找重复项的 SQL 查询
【发布时间】:2013-05-22 17:12:54
【问题描述】:

我正在尝试在 SQL Server 中编写一个查询,以确定每个哈希值是否有多行。
我需要哈希值重复的所有文件名。

结果应该是(基于我下面的例子)

003B4C68BC143B0290E04432A3A96092    File0003.jpg
003B4C68BC143B0290E04432A3A96092    File0004.jpg
003B4C68BC143B0290E04432A3A96092    File0005.jpg

请告诉我。

这是表结构

File table
-----------------------------------------
hash          FileName
---------------------------------------
000341A486F5492877D588BED0806650    File0001.jpg
00363EF2ECEEA32F10176EB64A50283F    File0002.jpg
003B4C68BC143B0290E04432A3A96092    File0003.jpg
003B4C68BC143B0290E04432A3A96092    File0004.jpg
003B4C68BC143B0290E04432A3A96092    File0005.jpg

【问题讨论】:

  • 请发布您的尝试。

标签: sql duplicates


【解决方案1】:
select * 
from File 
where hash in (select 
               hash 
               from File
               group by hash
               having count(*) > 1)

【讨论】:

    【解决方案2】:

    您可以使用EXISTS 来检查重复项,

    SELECT  a.*
    FROM    TableName a
    WHERE   EXISTS
            (
                SELECT  1
                FROM    Tablename b
                WHERE   a.hash = b.hash
                GROUP   BY hash
                HAVING  COUNT(*) > 1
            )
    

    INNER JOIN

    SELECT  a.*
    FROM    [File] a
            INNER JOIN
            (
                SELECT  hash
                FROM    [File] b
                GROUP   BY hash
                HAVING  COUNT(*) > 1
            ) b ON  a.hash = b.hash
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多