2013-05-22 13 views
7

各ハッシュ値に複数の行があるかどうかを調べるために、SQLサーバーにクエリを書き込もうとしています。
ハッシュ値が重複するすべてのファイル名が必要です。重複を検索するSQLクエリ

結果は、私に知らせてください

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 
+2

あなたの試みを投稿してください。 –

答えて

15
select * 
from File 
where hash in (select 
       hash 
       from File 
       group by hash 
       having count(*) > 1) 
+0

優秀...ありがとうございます! –

4

あなたは重複をチェックする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 
+0

JWを助けてください。 – Freelancer