Home > Uncategorized > Postgresql cancella record duplicati

Postgresql cancella record duplicati

Esempio di query SQL per cancellare records duplicati in postgresql

DELETE
 FROM downloads
 WHERE itemid NOT IN
 (SELECT MAX(dtupla.itemid)
 FROM downloads As dtupla
 GROUP BY dtupla.email,  dtupla. filename,  dtupla.date_part("hour", createddate)

Alternativa per la cancellazione di record duplicati limitando la ricerca ai records
con count (*)   > 1

DELETE
 FROM downloads
 WHERE itemid NOT IN
 (SELECT MIN(dtpl.itemid)
 FROM downloads As dtpl
 GROUP BY dtpl.email, dtpl.filename, date_trunc('minute',dtpl.createddate)
 HAVING count(*) >= 1);
 SELECT 1;

Conta record che hanno alcuni campi chiave duplicati e che pertatno potrebbero essere record duplicati

SELECT *
 FROM ( SELECT email, date_trunc('hour',createddate), filename, count (filename) as totuples
 FROM contactsdownloads
 GROUP BY email, filename , date_trunc('hour',createddate)
 ORDER BY totuples DESC, date_trunc('hour',createddate) ) AS foo
 WHERE totuples > 1

Risorse:

Postgresql 

Plpgsql 

Creare eliminare database e tabelle

Categorie:Uncategorized Tag:, ,
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: