Thread: Can this be done in one query?
With the following: select max(date) from log order by date_time desc limit 12; The limit clause has no effect on the results; it'll get the latest date from the entire record set rather than from the last 12 records. It works if I do this: create temp table as select date from log order by dat_time desc limit 12; select max(date) from temp; So, is there a way to do this in one query without creating a temp table? -- Randy Perry sysTame Mac Consulting/Sales phn 772.589.6449 mobile email help@systame.com
> So, is there a way to do this in one query without creating a temp table? How about a view: create view test as select max(date) from log order by date_time desc limit 12; select max(date) from test; Greetings, Bjoern
On Tue, 7 May 2002, Randall Perry wrote: > With the following: > > select max(date) from log order by date_time desc limit 12; > > The limit clause has no effect on the results; it'll get the latest date > from the entire record set rather than from the last 12 records. Maybe something like: select max(date) from (select date from log order by date_time desc limit 12) c;
Or maybe if date_time is of type timestamp: select date( select date_time from log order by date_time desc limit 1); JLL Stephan Szabo wrote: > > On Tue, 7 May 2002, Randall Perry wrote: > > > With the following: > > > > select max(date) from log order by date_time desc limit 12; > > > > The limit clause has no effect on the results; it'll get the latest date > > from the entire record set rather than from the last 12 records. > > Maybe something like: > select max(date) from (select date from log order by date_time desc limit > 12) c; > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org
Thanks, that's the best solution. But I don't get the syntax; what's the 'c' at the end -- an alias? > > On Tue, 7 May 2002, Randall Perry wrote: > >> With the following: >> >> select max(date) from log order by date_time desc limit 12; >> >> The limit clause has no effect on the results; it'll get the latest date >> from the entire record set rather than from the last 12 records. > > Maybe something like: > select max(date) from (select date from log order by date_time desc limit > 12) c; > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org -- Randy Perry sysTame Mac Consulting/Sales phn 772.589.6449 mobile email help@systame.com
> > On Tue, 7 May 2002, Randall Perry wrote: > >> With the following: >> >> select max(date) from log order by date_time desc limit 12; >> >> The limit clause has no effect on the results; it'll get the latest date >> from the entire record set rather than from the last 12 records. > > Maybe something like: > select max(date) from (select date from log order by date_time desc limit > 12) c; Thanks, that did it. > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org -- Randy Perry sysTame Mac Consulting/Sales phn 772.589.6449 mobile email help@systame.com