Identificando linhas duplicadas por certas colunas e removendo

0

Eu tenho resultados de sql de 9000k linhas e > 10 colunas. Eu preciso remover linhas como dups que tem outra linha que corresponde a 4 das colunas (não uma linha exata dup). Eu pesquisei e tentei várias coisas, mas nada me leva até lá. Isso é para uma conversão de dados única e teste de conversão para ele.

Portanto, se a linha 1 e a linha 22 tiverem os mesmos valores nas colunas A1 - A22, D1 - D22, H1 - H22 e K1-K22, então é um dup e eu preciso remover um deles (com uma data posterior em outra coluna)

Se eu pudesse fazer isso no sql, mas eu tenho direitos limitados e acesso a tabelas (como deveria ser!) e não posso executar todas as funções sql. (por exemplo, criar tabelas).

    
por IT Worker 24.09.2018 / 17:56

1 resposta

0

Você pode fazer algo dessa natureza:

DELETE FROM table
WHERE rowid NOT IN (
SELECT MIN(rowid) 
FROM table
GROUP BY col1, col2
)

Substitua a tabela pela tabela em que você está pesquisando, col1 e quaisquer outras com suas colunas necessárias para classificar algo como duplicado e rowid com qualquer coluna do índice.

    
por 24.09.2018 / 18:20