Re: (Hopefully stupid) select question. - Mailing list pgsql-general

From Tom Lane
Subject Re: (Hopefully stupid) select question.
Date
Msg-id 7060.1295884595@sss.pgh.pa.us
Whole thread Raw
In response to (Hopefully stupid) select question.  (Fredric Fredricson <Fredric.Fredricson@bonetmail.com>)
Responses Re: (Hopefully stupid) select question.
List pgsql-general
Fredric Fredricson <Fredric.Fredricson@bonetmail.com> writes:
> ... Now I want the latest "someData" for each "ref" like:

> The best solution I could find depended on the fact that serial is
> higher for higher dates. I do not like that because if that is true, it
> is an indirect way to get the data and could possibly, in the future,
> yield the wrong result if unrelated changes where made or id's reused.

> Here is my solution (that depend on the SERIAL):
> SELECT x.ref,x.someData
>    FROM t as x
>    NATURAL JOIN (SELECT ref,max(id) AS id FROM t GROUP BY ref ORDER BY
> ref) AS y ;

Well, you could just substitute max(inserted) for max(id).  But you
should also consider using DISTINCT ON --- look at the "weather reports"
example in the SELECT reference page.

BTW, "inserted DATE DEFAULT CURRENT_TIMESTAMP" looks pretty fishy.
You sure the column type shouldn't be timestamp or timestamptz, to
support multiple updates per day?

            regards, tom lane

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: error while trying to change the database encoding on a database
Next
From: Geoffrey Myers
Date:
Subject: Re: error while trying to change the database encoding on a database