Re: DISTINCT ON

From: "Jeremy Palmer" <palmerj(at)xtra(dot)co(dot)nz>
To: <pgsql-sql(at)postgresql(dot)org>
Cc: "'Michael Glaesemann'" <grzm(at)myrealbox(dot)com>
Subject: Re: DISTINCT ON
Date: 2005-11-19 02:50:54
Message-ID: 20051119025058.LHSU22512.web3-rme.xtra.co.nz@creeping
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Thanks for the reply.

Unfortunately that does not work as "id" column needs to be included in the
group by statement or be used in an aggregate function. If I did this it
definitely would note return the correct answer, as the "id" column is the
primary key for the table.

Any further suggestions?

-----Original Message-----
From: Michael Glaesemann [mailto:grzm(at)myrealbox(dot)com]
Sent: Saturday, 19 November 2005 12:28 p.m.
To: Jeremy Palmer
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: [SQL] DISTINCT ON

On Nov 19, 2005, at 7:49 , Jeremy Palmer wrote:

> SELECT DISTINCT ON (vector_id, obs_type)
> id
> FROM observation
> ORDER BY vector_id,
> obs_type,
> date DESC;
>
> However the documentation also states that "DISTINCT ON" is not
> part of the
> SQL standard and should be avoided when possible, stating that
> aggregations
> and sub-queries should be used instead...
>
> How would this be done in this scenario?

Something like:

select max(date), id
from observation
group by vector_id, obs_type;

Do test to see which is better in your situation.

Michael Glaesemann
grzm myrealbox com

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Michael Glaesemann 2005-11-19 03:06:47 Re: DISTINCT ON
Previous Message Michael Glaesemann 2005-11-18 23:27:57 Re: DISTINCT ON