Maison > base de données > Oracle > le corps du texte

Comment supprimer les enregistrements en double dans Oracle

PHPz
Libérer: 2023-04-17 09:55:15
original
2840 Les gens l'ont consulté

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 :

  1. Mot-clé DISTINCT

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 ;

  1. Clause GROUP BY

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

  1. Fonction d'élimination des lignes en double

Oracle inclut plusieurs fonctions intégrées pour éliminer enregistrements en double, par exemple :

  • MIN() : renvoie la valeur minimale dans le groupe.
  • MAX() : renvoie la valeur maximale dans le groupe.
  • AVG() : renvoie la valeur moyenne dans le groupe.
  • SUM() : Renvoie la somme des valeurs du groupe.

La requête suivante renverra le nombre d'adresses uniques dans la table des clients :

SELECT COUNT(DISTINCT ADDRESS) FROM CUSTOMERS ;

  1. Utilisation d'une fonction de fenêtre

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
Copier après la connexion

FROM

SALES
Copier après la connexion

) 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!