För att göra en distinkt på endast en (eller n) kolumn(er):
select distinct on (name)
name, col1, col2
from names
Detta kommer att returnera någon av raderna som innehåller namnet. Om du vill styra vilken av raderna som ska returneras måste du beställa:
select distinct on (name)
name, col1, col2
from names
order by name, col1
Returnerar första raden vid beställning av kol1.
distinct on
:
SELECT DISTINCT ON ( uttryck [, ...] ) behåller endast den första raden i varje rad rader där de givna uttrycken evalueras till lika. DISTINCT ON-uttrycken tolkas med samma regler som för ORDER BY (se ovan). Observera att den "första raden" i varje uppsättning är oförutsägbar om inte ORDER BY används för att säkerställa att den önskade raden visas först.
DISTINCT ON-uttrycken måste matcha ORDER BY-uttrycken längst till vänster. ORDER BY-satsen kommer normalt att innehålla ytterligare uttryck som bestämmer den önskade prioriteringen av rader inom varje DISTINCT ON-grupp.