Chcete-li provést rozlišení pouze na jednom (nebo n) sloupcích:
select distinct on (name)
name, col1, col2
from names
Tím se vrátí kterýkoli z řádků obsahujících název. Pokud chcete ovládat, který z řádků bude vrácen, musíte si objednat:
select distinct on (name)
name, col1, col2
from names
order by name, col1
Při objednání podle col1 vrátí první řadu.
distinct on
:
SELECT DISTINCT ON ( výraz [, ...] ) zachová pouze první řádek každé sady řádků, kde jsou dané výrazy vyhodnoceny jako stejné. Výrazy DISTINCT ON jsou interpretovány pomocí stejných pravidel jako pro ORDER BY (viz výše). Všimněte si, že „první řádek“ každé sady je nepředvídatelný, pokud není použito ORDER BY k zajištění toho, že se požadovaný řádek objeví jako první.
Výraz(y) DISTINCT ON se musí shodovat s výrazem(y) ORDER BY zcela vlevo. Klauzule ORDER BY bude normálně obsahovat další výraz(y), které určují požadovanou prioritu řádků v každé skupině DISTINCT ON.