Como encontrar registros duplicados em SQL
Use GROUP BY e HAVING para descobrir quais valores aparecem mais de uma vez e depois recuperar as linhas completas.
Consulta básica
SELECT
cpf,
COUNT(*) AS quantidade
FROM alunos
WHERE cpf IS NOT NULL
GROUP BY cpf
HAVING COUNT(*) > 1;Trazer os registros completos
SELECT a.*
FROM alunos a
INNER JOIN (
SELECT cpf
FROM alunos
WHERE cpf IS NOT NULL
GROUP BY cpf
HAVING COUNT(*) > 1
) d ON d.cpf = a.cpf
ORDER BY a.cpf, a.id;Antes de excluir
Atenção: antes de remover duplicidades, defina qual registro deve ser preservado e verifique relacionamentos com outras tabelas.