From: | Nabil Sayegh <postgresql(at)e-trolley(dot)de> |
---|---|
To: | Bruno Wolff III <bruno(at)wolff(dot)to>, pgsql-novice <pgsql-novice(at)postgresql(dot)org> |
Subject: | Re: DISTINCT ... ORDER BY |
Date: | 2003-11-05 16:52:03 |
Message-ID: | 3FA92AB3.2080509@e-trolley.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
Bruno Wolff III wrote:
> You can use a distinct on with order by clause as a subselect to eliminate
> the records you don't want. Then you can extract col3 from this subselect
> and order by the original sort order (instead of col3 first) to get the
> desired records in the desired order.
>
> It would look something like:
> select col3 from
> (select distinct on (col3) * from tablename order by col1, col2, col3, col4)
> order by col1, col2, col3, col4;
Unfortunately I need to ORDER BY expression, not plain columns.
SELECT DISTINCT ON (col_1) col_1 FROM tab ORDER BY col_2='foo' DESC, col_1='bar' DESC, col_3='blah' DESC;
fails with:
ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY expressions
:(
--
e-Trolley Sayegh & John, Nabil Sayegh
Tel.: 0700 etrolley /// 0700 38765539
Fax.: +49 69 8299381-8
PGP : http://www.e-trolley.de
From | Date | Subject | |
---|---|---|---|
Next Message | Nabil Sayegh | 2003-11-05 17:03:35 | Re: DISTINCT ... ORDER BY |
Previous Message | John Siggins | 2003-11-05 15:25:54 | Re: selecting rows based on unique fields in a column |