Valores duplicados em um banco de dados podem ser um problema ao executar operações altamente precisas. Eles podem levar a um único valor sendo processado várias vezes, contaminando o resultado. Os registros duplicados também ocupam mais espaço do que o necessário, levando a um desempenho lento.
Neste guia, você entenderá como encontrar e remover linhas duplicadas em um banco de dados do servidor SQL.
O básico
Antes de prosseguirmos, o que é uma linha duplicada? Podemos classificar uma linha como uma duplicata se ela contiver um nome e valor semelhantes para outra linha na tabela.
Para ilustrar como encontrar e remover linhas duplicadas em um banco de dados, vamos começar criando dados de amostra, como mostrado nas consultas abaixo:
Use DuplicedB;Na consulta de exemplo acima, criamos uma tabela contendo informações do usuário. No próximo bloco de cláusula, usamos a inserção na instrução para adicionar valores duplicados à tabela de usuários.
Encontre linhas duplicadas
Depois de termos os dados de amostra de que precisamos, verifique se há valores duplicados na tabela de usuários. Podemos fazer isso usando a função de contagem como:
Selecione nome de usuário, email, telefone, declara, count (*) como count_value do grupo de usuários por nome de usuário, email, telefone, estados com contagem (*)> 1;O trecho de código acima deve retornar as linhas duplicadas no banco de dados e quantas vezes eles aparecem na tabela.
Um exemplo de saída é como mostrado:
Em seguida, removemos as linhas duplicadas.
Excluir linhas duplicadas
O próximo passo é remover linhas duplicadas. Podemos fazer isso usando a consulta Excluir, como mostrado no exemplo de snippet abaixo:
exclua dos usuários em que não é o ID (selecione MAX (ID) do grupo de usuários por nome de usuário, email, telefone, estados);
A consulta deve afetar as linhas duplicadas e manter as linhas únicas na tabela.
Podemos ver a tabela como:
Selecione * dos usuários;O valor resultante é como mostrado:
Excluir linhas duplicadas (junção)
Você também pode usar uma declaração de junção para remover linhas duplicadas de uma tabela. Um exemplo de código de consulta de amostra é como mostrado abaixo:
Exclua um dos usuários uma junção internaLembre -se de que o uso de junção interna para remover duplicatas pode levar mais tempo do que outras em um extenso banco de dados.
Excluir linha duplicada (row_number ())
A função row_number () atribui um número seqüencial às linhas em uma tabela. Podemos usar essa funcionalidade para remover duplicatas de uma tabela.
Considere a consulta de exemplo abaixo:
Use DuplicedBA consulta acima deve usar os valores retornados da função row_number () para remover os duplicados. Uma linha duplicada produzirá um valor maior que 1 da função row_number ().
Conclusão
Manter seus bancos de dados limpos removendo linhas duplicadas das mesas é boa. Isso ajuda a melhorar o espaço de desempenho e armazenamento. Usando os métodos neste tutorial, você limpará seus bancos de dados com segurança.