2016-08-19 6 views
-3

In einer Oracle-Datenbank, ich habe Datensätze wie folgt aus:SQL Query Multi Datensatz

Column A  Column B 
--------------------- 
Test   R 
Test   W 
Test2   W 
Test3   K 
Test3   X 
Test4   Y 

nur diese Aufzeichnungen sollten meine Ausgabe

Column A  Column B 
----------------------- 
Test   R 
Test2   w 
Test3   K 
Test4   Y 

Ich habe versucht, sein mit Abfrage wie:

select * 
from X.table 
where Column A = 'Test' and Column B = 'R'; 

wie für Muti-Datensätze zu implementieren?

+3

Was ist die Logik dahinter? – Jens

+0

In Oracle DB haben wir Test mit R, WI wollen nur Datensatz von Test anzeigen, der mit R und nicht W übereinstimmt, die obige Abfrage funktioniert für einzelnen Datensatz aber wie kann ich für multi Datensätze implementieren – Sandeep

+1

** Tippfehler **: es ist ein ** Spalte ** (keine "Kolumne") –

Antwort

0

Dies wird das erwartete Ergebnis zurück:

select columnA, min(columnB) 
from X.table 
group by columnA 

Für jeden columnA Wert, geben Sie den niedrigsten Wert columnB.

+0

Es ist nicht mit dem niedrigsten Wert verbunden – Sandeep

+0

@Sandeep, funktioniert gut mit Ihren Beispieldaten und erwarteten Ergebnis. Vielleicht könnten Sie einige Beispieldaten ändern, um das Problem besser zu beschreiben? – jarlh

0

Dies kann mit Trennwand gelöst werden, indem ich denke, (Anmerkung: diese Oracle SQL ist):

select* 
from 
    (
    select x.* 
     , row_number() over (partition by column_a order by column_b) rn 
    from x 
) 
where rn =1;