Quando si lavora con i database, si incontrano spesso istanze in cui è necessario trovare righe duplicate in una determinata tabella del database. Trovare duplicati può consentire di determinare il rapporto di valori identici e tutti i valori nella tabella.
È quindi possibile utilizzare le informazioni raccolte per agire, come la rimozione di valori duplicati o spostarli su una tabella temporanea, ecc.
In questo post, impareremo come possiamo trovare valori duplicati in una tabella Oracle usando le funzioni di Oracle Aggregate o Analytic.
Impostazione della tabella di esempio e dei dati
Impostamo un dati di esempio per scopi di illustrazione per comprendere al meglio come utilizzare le funzioni Oracle per trovare valori duplicati.
Se hai una tabella esistente che desideri utilizzare, puoi saltare questa sezione. Altrimenti, eseguire l'istruzione di seguito per creare una tabella di esempio:
Crea table order_informationQuindi, aggiungi i dati di esempio con valori duplicati come mostrato:
Inserisci in order_information (id, cliente, order_date, product_id, quantità, prezzo)Una volta che la tabella e i dati di esempio sono pronti, possiamo imparare a trovare le righe duplicate.
Oracle Trova le righe duplicate - Funzione analitica
In Oracle, possiamo utilizzare la funzione Count () insieme a over e partizione per clausola per determinare il numero di record duplicati in una determinata tabella.
Prendi l'istruzione di esempio mostrata di seguito.
Seleziona gli ordini.*, count (*) over (partizione per cliente, ordine_date) numero_of_occurenceLa query sopra dovrebbe restituire la riga e il numero di volte che si verifica nella tabella come mostrato:
Per ottenere solo i record che appaiono più di una volta, possiamo usare una clausola dove:
con item_count AS (Seleziona ordini.*, count (*) over (partizione per cliente, ordine_date) numero_of_occurenceProduzione:
Oracle Trova valori duplicati - funzione aggregata
Un altro metodo che possiamo usare per trovare record duplicati in una tabella è il gruppo per clausola. Possiamo quindi determinare il numero di volte in cui si verifica un determinato record in ciascun gruppo usando la funzione Count (). Se una riga appare più di una volta, è un duplicato.
Un esempio è come mostrato:
Selezionare *Le informazioni risultanti sono come mostrate:
Come possiamo vedere, la query ci consente di ottenere righe duplicate dalla tabella di destinazione.
Conclusione
In questo tutorial, hai scoperto due metodi principali per determinare le righe duplicate da un determinato database.