Antw: using max() aggregate

Gerhard Dieringer <dieringg@eba-haus.de>

From: "Gerhard Dieringer" <DieringG@eba-haus.de>
To: <pgsql-sql@postgresql.org>
Cc: <cunctator@apartia.ch>
Date: 2000-06-16T07:28:27Z
Lists: pgsql-sql
Louis-David Mitterrand - ldm@apartia.org - http://www.apartia.fr wrote:

> Hello,
> 
> I am trying to return the most recently updated record from a table:
>
> SELECT max(stopdate) FROM auction;
>
> and this works but only returns the timestamp, however if I try to get
> another column with the aggregate it fails:
> 
> SELECT title,max(stopdate) FROM auction;
> ERROR:  Attribute auction.title must be GROUPed or used in an aggregate function
> 
> Ok, so I group it now:
>
> SELECT title,max(stopdate) FROM auction GROUP BY title;
>      title     |          max           
> ---------------+------------------------
>  dfsdfsdf      | 2000-07-10 05:00:00+02
>  dssdfsdfsdfsf | 2000-07-09 16:00:00+02
>  sdfsdfsdfsdf  | 2001-04-10 15:00:00+02
> (3 rows)
> 
> But the problem is that I now get three rows when I only want the max()
> item.
> 
> How should I do it?
> 
> Thanks in advance,

I didn't test it, but something like

SELECT title,stopdate 
FROM auction
WHERE stopdate = (SELECT max(stopdate) FROM auction);

should work.

--------
Gerhard