Thread: DISTINCT ON () with UNION

DISTINCT ON () with UNION

From
pgsql@peope.net
Date:
How can you use a distinct on () including the whole union.

eg

select distinct on (valutaid) valutaid, short from valuta UNION select 
landid, land from land order by valutaid;

table: valuta
valutaid    valuta
1        USD
2        SEK

table: land
landid    land
1        Sweden
2        USA
3        Norway

The above would give
1    USD
1    Sweden
2    SEK
2    USA
3    Norway

What I would like to get is
1    USD
2    SEK
3    Norway

I did specify distinct on (valutaid) anyways =)

Any suggestions?

Best regards
Per-Olof Pettersson


Re: DISTINCT ON () with UNION

From
Tom Lane
Date:
pgsql@peope.net writes:
> How can you use a distinct on () including the whole union.

In 7.1 you can write

select distinct ... from (select ... union select ...) ss;
        regards, tom lane