Localizando valores duplicados em uma tabela SQL
É fácil encontrarduplicates
com um campo:
SELECT name, COUNT(email)
FROM users
GROUP BY email
HAVING COUNT(email) > 1
Então, se tivermos uma mesa
ID NAME EMAIL
1 John [email protected]
2 Sam [email protected]
3 Tom [email protected]
4 Bob [email protected]
5 Tom [email protected]
Esta consulta nos daráJohn, Sam, Tom, Tom porque todos eles têm o mesmoemail
.
No entanto, o que eu quero é obter duplicatas com o mesmoemail
ename
.
Ou seja, eu quero pegar "Tom", "Tom".
A razão pela qual eu preciso disso: cometi um erro e permiti inserir duplicadoname
eemail
valores. Agora eu precisoremover / alterar as duplicatas, então eu precisoencontrar eles primeiro.