Given the following data in a table named 'foo' : id update_time description 2 2005-08-24 00:10:00 transaction1 2 2005-08-24 00:22:00 transaction2 2 2005-08-24 00:34:00 transaction3 2 2005-08-24 00:58:00 transaction4
I want to select 2nd oldest transaction from foo (transaction 3). The solution below works, but I think there may be a better way. Does anyone else have a better idea? select * from foo f1 join (select id, update_time from foo except select id, max(update_time) as update_time from foo group by id) f2 using (id, update_time) order by 1, 2 desc limit 1; ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster