Oracle-Entsprechung von Postgres 'DISTINCT ON?

In postgres können Sie mit nach dem ersten Wert einer Gruppe fragenDISTINCT ON. Wie kann dies in Oracle erreicht werden?

Aus dem Postgres-Handbuch:

SELECT DISTINCT ON (Ausdruck [, ...]) behält nur die erste Zeile jeder Reihe von Zeilen bei, in denen die angegebenen Ausdrücke als gleich ausgewertet werden. Die DISTINCT ON-Ausdrücke werden nach denselben Regeln wie für ORDER BY interpretiert (siehe oben). Beachten Sie, dass die "erste Zeile" jedes Satzes nicht vorhersehbar ist, es sei denn, ORDER BY wird verwendet, um sicherzustellen, dass die gewünschte Zeile zuerst angezeigt wird.

Zum Beispiel für eine gegebene Tabelle:

<code> col1 | col2 
------+------
 A    | AB
 A    | AD
 A    | BC
 B    | AN
 B    | BA
 C    | AC
 C    | CC
</code>

Aufsteigende Sortierung:

<code>> select distinct on(col1) col1, col2 from tmp order by col1, col2 asc;
 col1 | col2 
------+------
 A    | AB
 B    | AN
 C    | AC
</code>

Absteigende Sortierung:

<code>> select distinct on(col1) col1, col2 from tmp order by col1, col2 desc;
 col1 | col2 
------+------
 A    | BC
 B    | BA
 C    | CC
</code>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage