Re: Remove duplicate rows - Mailing list pgsql-general

From Bruno Wolff III
Subject Re: Remove duplicate rows
Date
Msg-id 20070111201813.GA20521@wolff.to
Whole thread Raw
In response to Remove duplicate rows  (Jiří Němec <konference@menea.cz>)
List pgsql-general
On Thu, Jan 11, 2007 at 18:51:57 +0100,
  Jiří Němec <konference@menea.cz> wrote:
> Hello,
>
> I need to remove duplicates rows from a subquery but order these
> results by a column what is not selected. There are logically two
> solutions but no works.
>
> SELECT DISTINCT sub.foo FROM (SELECT ...) AS sub ORDER BY sub.bar
> ERROR:  for SELECT DISTINCT, ORDER BY expressions must appear in select list
>
> SELECT sub.foo FROM (SELECT ...) AS sub GROUP BY sub.foo ORDER BY sub.bar
> ERROR: column "sub.bar" must appear in the GROUP BY clause or be used
> in an aggregate function
>
> Does anybody know how to remove duplicate rows from a subquery and order
> these results by a column what is not selected but exists in a subquery?

Is that column dependent (just on) the column you are checking for duplicates
on? If so you can use GROUP BY on both columns, listing the column you want
to order by first. If not, you might want to take a look at DISTINCT ON.

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Checkpoint request failed on version 8.2.1.
Next
From: Tom Lane
Date:
Subject: Re: ORDER BY col is NULL in UNION causes error?