Re: using the aggregate function max()
От | John Fabiani |
---|---|
Тема | Re: using the aggregate function max() |
Дата | |
Msg-id | 201109222140.16949.johnf@jfcomputer.com обсуждение исходный текст |
Ответ на | Re: using the aggregate function max() (David Johnston <polobo@yahoo.com>) |
Ответы |
use of savepoint in containter managed transaction
|
Список | pgsql-sql |
On Thursday, September 22, 2011 08:14:58 pm David Johnston wrote: > 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 > > 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 thanks - I'll look into the "with" Johnf
В списке pgsql-sql по дате отправления: