Ao trabalhar com bancos de dados, você geralmente encontra instâncias em que precisa encontrar linhas duplicadas em uma determinada tabela de banco de dados. Encontrar duplicatas pode permitir que você determine a proporção de valores idênticos para todos os valores na tabela.
Você pode usar as informações coletadas para agir, como remover valores duplicados ou movê -los para uma tabela temporária, etc.
Nesta postagem, aprenderemos como podemos encontrar valores duplicados em uma tabela Oracle usando funções agregadas ou analíticas do Oracle.
Configurando a tabela de amostra e dados
Vamos configurar um exemplo de dados para fins de ilustração para entender melhor como usar as funções do Oracle para encontrar valores duplicados.
Se você tem uma tabela existente que deseja usar, você pode pular esta seção. Caso contrário, execute a declaração abaixo para criar uma tabela de amostra:
Crie tabela ordens_informationEm seguida, adicione dados de amostra com valores duplicados como mostrado:
Inserir em ordens_information (id, cliente, order_date, product_id, quantidade, preço)Depois que os dados da tabela e da amostra estiverem prontos, podemos aprender a encontrar as linhas duplicadas.
Oracle Find Duplicate lines - Função analítica
No Oracle, podemos usar a função count () em conjunto com a cláusula Over e Partition by para determinar o número de registros duplicados em uma determinada tabela.
Veja a declaração de exemplo mostrada abaixo.
selecione pedidos.*, contagem (*) sobre (partição por cliente, order_date) number_of_occurenceA consulta acima deve retornar a linha e o número de vezes que ocorre na tabela, como mostrado:
Para obter apenas os registros que aparecem mais de uma vez, podemos usar uma cláusula onde:
com item_count como (selecione pedidos.*, contagem (*) sobre (partição por cliente, order_date) number_of_occurenceSaída:
Oracle encontre valores duplicados - função agregada
Outro método que podemos usar para encontrar registros duplicados em uma tabela é o grupo por cláusula. Podemos então determinar o número de vezes que um determinado registro ocorre em cada grupo usando a função count (). Se uma linha aparecer mais de uma vez, é um duplicado.
Um exemplo é como mostrado:
Selecione *As informações resultantes são como mostrado:
Como podemos ver, a consulta nos permite obter linhas duplicadas da tabela de destino.
Conclusão
Neste tutorial, você descobriu dois métodos principais para determinar linhas duplicadas de um determinado banco de dados.