J'ai besoin d'afficher des enregistrements uniques dans une colonne et des doublons dans une autre colonne de Oracle?
3 Réponses :
Vous pouvez utiliser le groupe par les deux cas avec la clause:
enregistrements uniques p> enregistrements en double: p>
quelque chose comme ça va? Voir les commentaires dans le code.
SQL> with
2 test (col1, col2) as
3 -- sample data
4 (select 1, 10 from dual union all
5 select 1, 10 from dual union all
6 select 2, 20 from dual union all
7 select 3, 30 from dual union all
8 select 3, 30 from dual
9 ),
10 uni as
11 -- unique values
12 (select col1, col2
13 from test
14 group by col1, col2
15 having count(*) = 1
16 ),
17 dup as
18 -- duplicate values
19 (select col1, col2
20 from test
21 group by col1, col2
22 having count(*) > 1
23 )
24 -- the final result
25 select u.col1 ucol1,
26 u.col2 ucol2,
27 d.col1 dcol1,
28 d.col2 dcol2
29 from uni u full outer join dup d on u.col1 = d.col1;
UCOL1 UCOL2 DCOL1 DCOL2
---------- ---------- ---------- ----------
1 10
3 30
2 20
SQL>
Vous pouvez identifier les valeurs dupliquées à l'aide de fonctions de fenêtre, puis filtrer chaque requête. Ensuite, pour obtenir des enregistrements uniques: pour obtenir des doublons: p>
Les enregistrements ne correspondent pas aux colonnes. Veuillez nous montrer des exemples de données avec votre requête actuelle.
La question n'est pas claire