Pular para o conteúdo principal

como remover linhas duplicadas de uma tabela no SQL Server?

Remover as duplicidades é um processo necessário para garantir a qualidade dos dados (Data Quality).

No dia-a-dia, quando preciso trazer os dados para analisar em uma plataforma analítica, tenho uma preocupação enorme com linhas duplicadas. Com vista, a não trazer informações inflacionadas ou inverdades.

Para remover as duplicidades, utilizo a função ROW_NUMBER().

Com a função ROW_NUMBER(), eu crio uma coluna que vai contar quantas vezes uma linha se repete e após essa contagem, eu armazeno o resultado em uma tabela temporária. Em seguida, Faço o SELECT na tabela temporária, trazendo somente as linhas onde contador=1.

Na função ROW_NUMBER() utilizamos as seguintes expressões:

ROW_NUMBER() : é a primeira declaração que informa que vamos usar a função e obrigatoriamente exige o uso do OVER() logo em seguida

OVER() : esta é uma expressão obrigatória que vem após a declaração do ROW_NUMBER(). Quando a usamos, é como se estivéssemos dizendo "Quero que o resultado seja contado sobre as regras desta expressão que escrevi dentro do parêntese".

PARTITION BY: Este comando indica quando a contagem deve ser reiniciada.

ORDER BY: Comando obrigatório que usamos para indicar por qual ordem a contagem deve se guiar.

Eu tenho essa consulta: as partes marcadas em azul são linhas duplicadas
Eu vou usar a função  ROW_NUMBER() para criar uma coluna que vai contar quantas vezes uma linha se repete.

Todas as colunas da minha consulta, vou colocar na expressão partition by.

 SELECT 
 PRODUTO,QUANTIDADE,PRECO_UNIT,VALOR_TOTAL,DATA_AQUISICAO,IDPRODUTO,
 ROW_NUMBER() 
 over(partition by PRODUTO,QUANTIDADE,PRECO_UNIT,VALOR_TOTAL,DATA_AQUISICAO,IDPRODUTO 
 order by IDPRODUTO )Coluna_Contador
FROM dbo.estoque ORDER BY produto
Eu vou selecionar somente as linhas onde Coluna_Contador=1 . Para fazer isso, preciso inserir esse select em uma tabela.

Como não quero criar uma tabela física, vou criar uma tabela temporária usando #

SELECT 
 PRODUTO,QUANTIDADE,PRECO_UNIT,VALOR_TOTAL,DATA_AQUISICAO,IDPRODUTO,
 ROW_NUMBER() 
 over(partition by PRODUTO,QUANTIDADE,PRECO_UNIT,VALOR_TOTAL,DATA_AQUISICAO,IDPRODUTO 
 order by IDPRODUTO )Coluna_Contador
INTO #TABELA_TEMPORARIA -- Inserindo dados na tabela temporaria
FROM dbo.estoque ORDER BY produto

Fazer um SELECT na tabela temporaria para trazer os dados sem duplicidade
SELECT * FROM #TABELA_TEMPORARIA WHERE Coluna_Contador = 1

Comentários

Postagens mais visitadas deste blog

Exercícios resolvidos em Linguagem Python - para iniciantes

Esta lista de exercícios resolvidos é um manual para ajudar todo aluno iniciante e não só, a adquirir e aprimorar as habilidades necessárias para se trabalhar com Python, de forma rápida e consistente. Estude e desfrute do conteúdo. 1º Exercício      Faça um programa que informe a versão do Python que você está utilizando Solução import sys print ( "Versão do Python" ) print (sys.version) print ( "Informação da versão instalada" ) print (sys.version_info) Atenção :     -  O módulo sys fornece funções e variáveis usadas para manipular diferentes partes do ambiente de tempo de execução do Python;     - Pra quem ainda não está familiarizado com a linguagem, um módulo  é um arquivo contendo definições e comandos em Python para serem usados em outros programas. 2º Exercício      Faça um programa em linguagem Python que converta metros para centímetros. Solução print ( ' \t ----Conversão de medida---- ' ) metros = int ( in...

Como abrir uma página da web utilizando Python?

Simples, você pode abrir páginas da Web de forma rápida, segura e fácil. Veja só, durante os estudos das bibliotecas padrão do Python descobri que para abrir um navegador web a partir de um script, devo importar o módulo webbrowser. Em seguida, usar webbrowser.open () que vai receber o link que quero abrir como argumento e executar o serviço, ou seja, basta inserir um endereço do youtube nele, na verdade pode ser qualquer link que você desejar. Exemplo webbrowser.open( "https://www.huicode.com.br/p/exercicios-resolvidos-de-linguagem-c.html" ) Para funcionar temos que importar o módulo webbrowser, que vai ser a maneira de dizer ao python que queremos usar webbrowser e todas as suas funcionalidades no programa. import webbrowser webbrowser.open( "https://www.huicode.com.br/p/exercicios-resolvidos-de-linguagem-c.html" ) Funcionooou, uhuhu. Nem parece, mas o módulo webbrowser é um módulo muito empregado em projetos de sites de filmes. Tem muitas utilidades, acredite.

Lista de exercícios resolvidos de Linguagem Python

  Neste artigo, temos diversos exercícios básicos, exercícios utilizando   if - else , exercícios utilizando o   for  e   while  e exercícios utilizando as funções   lambda  e   map . Parte I - Exercícios básicos  (Estruturas sequenciais) Exercício 01 Desenvolva um programa que peça dois números e imprima a soma. Solução #criar as variáveis que vão receber a entrada dos números num1 = int ( input ( "Digite o 1º numero: " )) num2 = int ( input ( "Digite o 2º numero: " )) #calcular a soma soma = num1 + num2 # Mostrar o resultado na tela print ( f "A soma entre { num1 } e { num2 } é = { soma } " ) Ao executar o script , teremos como saída: Exercício 02 Faça um programa que converta metros para centímetros. Solução Um metro corresponde a 100 centímetros. Portanto: #criar a variável que vai receber a entrada do valor metros = float ( input ( "Digite o valor em metros: " )) #calculando a medida centimetros = metros * 100 # Most...