我有一张桌子" MyDuplicateTable"它包含所有文件entries(filepath,filesize,crc32,filename)
。现在我想通过大小和文件名找出重复项。我已经尝试了下面的查询,但它只给了我一个结果。
例如:
MyDuplicateTable:
Filepath Filesize CRC32 Filename
c:\dup\a.txt 0 0 a.txt
c:\dup\dup1\a.txt 0 0 a.txt
c:\dup\b.txt 0 0 b.txt
现在我想通过文件名和大小找到重复项。我是查询。
Query:"SELECT FILEPATH FROM MYDUPLICATETABLE GROUP BY FILENAME, SIZE HAVING COUNT(*)>1" Result of query:But above query returns only one record[c:\dup\a.txt]
另一个查询
"从MyDuplicateTable中选择Filepath,其中包含Filename IN(从MyDuplicateTable GROUP BY文件名中选择文件名,大小为HAVING COUNT(*)→1)"查询结果:以上查询不返回任何内容:(
提前感谢您的帮助。
答案 0 :(得分:0)
使用联接来获得结果。
SELECT t1.Filepath
FORM MyDuplicateTable t1
INNER JOIN (
SELECT Filesize, Filename
FROM MyDuplicateTable
GROUP BY FILENAME, Filesize
HAVING COUNT(*) > 1
) t2 ON t1.Filesize = t2.Filesize AND t1.Filename = t2.Filename
答案 1 :(得分:0)
从MyDuplicateTable中选择Filepath,其中Filename IN(从MyDuplicateTable GROUP BY文件名中选择Filename,大小具有COUNT(文件名)> 1)"
尝试 - 如上所述在您的having子句中计数(Filename)而不是count(*)。