For at gøre en distinkt på kun én (eller n) kolonne(r):
select distinct on (name)
name, col1, col2
from names
Dette vil returnere enhver af rækkerne, der indeholder navnet. Hvis du vil kontrollere, hvilken af rækkerne der skal returneres, skal du bestille:
select distinct on (name)
name, col1, col2
from names
order by name, col1
Returnerer første række ved bestilling af kol1.
distinct on
:
SELECT DISTINCT ON ( udtryk [, ...] ) beholder kun den første række af hvert sæt rækker, hvor de givne udtryk evalueres til at være lig. DISTINCT ON-udtrykkene fortolkes efter de samme regler som for ORDER BY (se ovenfor). Bemærk, at den "første række" i hvert sæt er uforudsigelig, medmindre ORDER BY bruges til at sikre, at den ønskede række vises først.
DISTINCT ON-udtrykket skal matche det eller de ORDER BY-udtryk længst til venstre. ORDER BY-sætningen vil normalt indeholde yderligere udtryk, der bestemmer den ønskede forrang for rækker inden for hver DISTINCT ON-gruppe.