Maison > Article > base de données > Comment supprimer les enregistrements en double dans Oracle
Oracle est l'un des plus grands systèmes de gestion de bases de données relationnelles au monde. Ses fonctions puissantes et sa large gamme d'applications en font un élément indispensable des applications au niveau de l'entreprise. Dans ces applications, la déduplication des données est une tâche courante. La suppression des enregistrements en double peut améliorer la qualité des données et réduire l'espace de stockage et le temps de requête.
Dans Oracle, vous pouvez utiliser plusieurs méthodes pour supprimer les enregistrements en double :
L'utilisation du mot-clé DISTINCT renvoie un ensemble de résultats unique, ce qui signifie qu'il n'y aura aucun enregistrement en double. Par exemple, la requête suivante renverra tous les noms de clients distincts :
SELECT DISTINCT CUSTOMER_NAME FROM CUSTOMERS ;
La clause GROUP BY est utilisée pour le regroupement et renvoie une seule ligne pour chaque groupe. En combinant certaines colonnes, vous pouvez trouver des valeurs uniques. Par exemple, la requête suivante renverra le nombre de clients dans chaque ville :
SELECT CITY, COUNT(*) FROM CUSTOMERS GROUP BY CITY
Oracle inclut plusieurs fonctions intégrées pour éliminer enregistrements en double, par exemple :
La requête suivante renverra le nombre d'adresses uniques dans la table des clients :
SELECT COUNT(DISTINCT ADDRESS) FROM CUSTOMERS ;
Une fonction de fenêtre est une fonction spéciale qui compte l'intégralité valeur du jeu de résultats plutôt qu’une ligne distincte. Utilisez les fonctions de fenêtre pour éliminer les enregistrements en double tout en conservant les données d'origine.
La requête suivante renverra les 20 derniers enregistrements de ventes triés par heure de vente sans conserver les enregistrements de ventes en double :
SELECT * FROM (
SELECT
ROW_NUMBER() OVER(PARTITION BY SALE_DATE ORDER BY SALE_AMOUNT DESC) RN, SALE_ID, SALE_AMOUNT, SALE_DATE
FROM
SALES
) WHERE RN <= 20;
Résumé
Oracle dispose de nombreuses méthodes pour supprimer les enregistrements en double, notamment le mot-clé DISTINCT, la clause GROUP BY, la fonction d'élimination des lignes en double et la fonction de fenêtre. L'utilisation de ces méthodes peut améliorer la qualité des données et réduire l'espace de stockage et le temps de requête.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!