2016-12-28 4 views
0

Ich habe eine Tabelle mit den Daten wie unten, wo die Kombination von LINENUM und RCPTNUM für jedes PONUM und SITE eindeutig sein sollte.Doppelte Kombination von Spalten in Oracle

PONUM LINENUM RCPTNUM SITE 
1000  1  1  XXX 
1000  1  2  XXX 
1000  1  3  XXX 
1000  2  1  XXX 
1000  2  1  XXX 
1001  1  1  XXX 
1001  1  1  XXX 

Die Ausgabe der Liste der doppelten Kombination

PONUM LINENUM RCPTNUM SITE 
1000 2  1  XXXX 
1001 1  1  XXXX 
+2

Sie sollten hinzufügen, was Sie fordern. Suchen nach, wie man die gegebene Tabelle normalisiert? Erhalten Sie Hilfe beim Erstellen einer Abfrage, die "Duplikate" identifiziert? – rpy

+0

Was ist Ihre Frage? – additionster

+0

Mögliches Duplikat von [Wie finde ich doppelte Werte in einer Tabelle in Oracle?] (Http://stackoverflow.com/questions/59232/how-do-i-find-duplicate-values-in-a-table-in) -Orakel) – Aleksej

Antwort

0

dieses Versuchen zeigen sollte: für

select PONUM, 
     LINENUM, 
     RCPTNUM , 
     SITE 
from 
(--Preparing dataset 
with tbl(PONUM, LINENUM, RCPTNUM ,SITE) as 
(select 1000,  1 ,  1 ,  'XXX' from dual 
UNION ALL 
select 1000,  1,  2,  'XXX' from dual 
UNION ALL 
select 1000,  1,  3,  'XXX' from dual 
UNION ALL 
select 1000,  2,  1,  'XXX' from dual 
UNION ALL 
SELECT 1000,  2,  1,  'XXX' from dual 
UNION ALL 
Select 1001,  1,  1,  'XXX' from dual 
UNION ALL 
Select 1001,  1,  1,  'XXX' from dual) 
---Dataset end 
---Query 
select PONUM, 
     LINENUM, 
     RCPTNUM,SITE , 
     row_number()over(partition by PONUM, LINENUM,RCPTNUM,SITE order by PONUM) rnk 
from tbl 
) 
where rnk = 2 ; 
0
select PONUM, LINENUM, RCPTNUM, SITE 
from yourTable 
group by PONUM, LINENUM, RCPTNUM, SITE 
having count(1) > 1 
Verwandte Themen