Re: using the aggregate function max()
От | David Johnston |
---|---|
Тема | Re: using the aggregate function max() |
Дата | |
Msg-id | 5EABD4DE-5CB8-4C65-A1FF-3166A683EE3F@yahoo.com обсуждение исходный текст |
Ответ на | using the aggregate function max() (John Fabiani <johnf@jfcomputer.com>) |
Ответы |
Re: using the aggregate function max()
|
Список | pgsql-sql |
On Sep 22, 2011, at 22:49, John Fabiani <johnf@jfcomputer.com> wrote: > Hi, > I need a little help understanding how to attack this problem. > > I need to find the max(date) of a field but I need that value later in my > query. > > If I > select max(x.date_field) as special_date from (select date_field) from table > where ...)x > > I get one row and column. > > But now I want to use that field in the rest of the query > > select y.*, max(x.date_field) as special_date from (select date_field) from > table where ...)x > from aTable y where y.somefield = special_date. > > The above only returns one row and one column the "special_date." > > How can I use the aggregate field "special_date" in the rest of the query? Or > is there some other way? > > Johnf > > -- > Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-sql Your query above is syntactically invalid. Try this. WITH max_date AS ( select max(datefield) AS specialdate from ...) SELECT * FROM table JOIN max_date ON table.somefield = max_date.specialdate; You can use a online query instead of the WITH if desired, same effect. You could also drop the join and use the max_date CTE in a WHERE clause: ... FROM table WHERE table.somefield = (SELECT specialdate FROM max_date) David J
В списке pgsql-sql по дате отправления: