Oracle odpowiednik Postgres DISTINCT ON?

W postgres możesz zapytać o pierwszą wartość w grupie za pomocąDISTINCT ON. Jak można to osiągnąć w Oracle?

Z podręcznika postgres:

SELECT DISTINCT ON (wyrażenie [, ...]) utrzymuje tylko pierwszy wiersz każdego zestawu wierszy, w którym podane wyrażenia są równe. Wyrażenia DISTINCT ON są interpretowane przy użyciu tych samych reguł, co w przypadku ORDER BY (patrz wyżej). Należy zauważyć, że „pierwszy wiersz” każdego zestawu jest nieprzewidywalny, chyba że ORDER BY jest używany do zapewnienia, że ​​żądany wiersz pojawi się jako pierwszy.

Na przykład dla danej tabeli:

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

Rosnąco sortuj:

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

Malejąco:

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

questionAnswers(2)

yourAnswerToTheQuestion