Maison  >  Article  >  base de données  >  Comment supprimer les requêtes en double dans Oracle

Comment supprimer les requêtes en double dans Oracle

hzc
hzcoriginal
2020-06-09 09:53:4230736parcourir

Comment supprimer les requêtes en double dans Oracle

La méthode de requête de déduplication Oracle est :

Déduplication multi-champs de la base de données Oracle

Introduction à la méthode : mot clé distinct, regrouper par , row_number ()over (partition par colonne, ordre par colonne desc)

Mon exigence est la suivante : interroger toutes les informations après la déduplication en fonction de certaines colonnes. Finalement, j'ai choisi la troisième méthode.

Mon idée : je souhaite trouver un moyen plus simple d'implémenter les requêtes de déduplication. Plus c’est direct, mieux c’est.

Structure et& contenu du tableau

Comment supprimer les requêtes en double dans Oracle

1. Utilisation d'un mot-clé distinct : la combinaison de champs suivant le mot-clé distinct doit être

sélectionner un identifiant distinct from test

Résultat ; Déduplication basée sur l'identifiant

sélectionnez un identifiant distinct, un nom du test

Résultat : Déduplication basée sur la combinaison de l'identifiant et du nom (similaire à l'identifiant | | nom Cette façon de supprimer les doublons)

Comment supprimer les requêtes en double dans Oracle

2. Groupe par groupe pour supprimer les doublons

sélectionnez l'identifiant, le nom du groupe de test par identifiant, le nom

Résultat : Déduplication basée sur l'identifiant, combinaison de noms

20170523141826007 (1).png

3. méthode row_number ()over (partition par colonne ordre par colonne asc | desc)

3.1 row_number() over(order by column asc) Triez d'abord les colonnes par ordre croissant, puis renvoyez un numéro de séquence pour chaque enregistrement

3.2 row_number() over(partition by column1 order by column2 asc) First regrouper par colonne1, puis trier les données regroupées par ordre croissant selon la colonne2

Remarque : trier par doit avoir

exemple, sélectionnez a.*,row_number() over(partition by a.id ,a.sex order by name) su from test a;

Comment supprimer les requêtes en double dans Oracle

Exemple de déduplication : Déduplication basée sur l'identifiant et le sexe

sélectionnez l'identifiant, le nom, le sexe from(

select a.*,row_number() over(partition by a.id,a.sex order by name) su from test a )

where su=1

Résultat :

Comment supprimer les requêtes en double dans Oracle

Mon exigence est d'interroger toutes les informations après la déduplication en fonction de certaines colonnes.

Tutoriel recommandé : "Tutoriel Oracle"

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!

Déclaration:
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