Aby odróżnić tylko jedną (lub n) kolumnę (kolumny):
select distinct on (name)
name, col1, col2
from names
Spowoduje to zwrócenie dowolnego wiersza zawierającego nazwę. Jeśli chcesz kontrolować, które wiersze zostaną zwrócone, musisz zamówić:
select distinct on (name)
name, col1, col2
from names
order by name, col1
Zwróci pierwszy wiersz, gdy zostanie zamówiony przez kol1.
distinct on
:
SELECT DISTINCT ON ( wyrażenie [, ...] ) zachowuje tylko pierwszy wiersz każdego zestawu wierszy, w których podane wyrażenia są równe. Wyrażenia DISTINCT ON są interpretowane według tych samych zasad, co w przypadku ORDER BY (patrz wyżej). Zwróć uwagę, że „pierwszy wiersz” każdego zestawu jest nieprzewidywalny, chyba że zostanie użyte polecenie ORDER BY, aby upewnić się, że żądany wiersz pojawi się jako pierwszy.
Wyrażenia DISTINCT ON muszą być zgodne z wyrażeniami ORDER BY znajdującymi się najbardziej po lewej stronie. Klauzula ORDER BY zwykle zawiera dodatkowe wyrażenia, które określają pożądany priorytet wierszy w każdej grupie DISTINCT ON.