За да направите различно само за една (или n) колона(и):
select distinct on (name)
name, col1, col2
from names
Това ще върне всеки от редовете, съдържащи името. Ако искате да контролирате кой от редовете ще бъде върнат, трябва да поръчате:
select distinct on (name)
name, col1, col2
from names
order by name, col1
Ще върне първия ред, когато е поръчан от col1.
distinct on
:
SELECT DISTINCT ON ( израз [, ...] ) запазва само първия ред от всеки набор от редове, където дадените изрази се оценяват на равни. Изразите DISTINCT ON се интерпретират, като се използват същите правила като за ORDER BY (вижте по-горе). Имайте предвид, че „първият ред“ на всеки набор е непредсказуем, освен ако ORDER BY не се използва, за да се гарантира, че желаният ред се появява първи.
Изразът(ите) DISTINCT ON трябва да съвпада с най-левия израз(и) ORDER BY. Клаузата ORDER BY обикновено съдържа допълнителен(и) израз(и), който определя желания приоритет на редовете във всяка група DISTINCT ON.