SELECT para ver dados duplicados em uma tabela do postgreSQL

1. SELECT para ver dados duplicados em uma tabela do postgreSQL

James Brown
Goleta69

(usa Fedora)

Enviado em 08/04/2008 - 09:56h

Amigos, estou iniciando no psql... gostaria de uma ajuda, pois fiz a importação de alguns dados para uma tabela (atravéz de um scrip), porém importei varios dados duplicados em uma mesma data. Como esses dados são "log's" eu os importo diariamente, e são em torno de 300 a 400 log's diários ,fica complicado procurá-los de um a um para deletar. Gostario de saber como faço um SELECT para verificar apenas esses dados duplicados e tambem qual comando uso para deleta-los? Acredito "logicamente" eu fazer uma busca pela data de INSERT dos mesmos, porém não sei como o fazer. Agradeço a todos.


  


2. group by

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 08/04/2008 - 12:23h

cara você terá de usar o group by.
só que ai vai precisar fazer um programinha para saber quais excluir (ou um script) pois só uma query não dará certo.
para usar o group by, por exemplo, se você quer descobrir os nomes duplicados.
select nome, count(nome) as qtd
from tbnomes
group by nome

Ele vai listar todos os nomes e a quantidade de registros daquele nome
ai você pode colocar.
select * from (select nome, count(nome) as qtd
from tbnomes
group by nome) where qtd > 1

E a partir destes dados, pegar e fazer um script que acha o código de um dos duplicados e o exclui.

Agora como nunca mexi com postgree não sei se ele tem subselect mas acredito que sim, senão tem de fazer outra técnica.
Vai ter que bolar um algoritmo não tem um comando magico pra resolver, mas não é dificil não.

Conseguiu captar ou ta confuso?










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts