combining with Ben's solution, you can do something like:
\nselect aa.*\n  from table aa,\n       (select a, b, \n               max(to_char(date)||c||d||e) sortkey\n          from table) bb\n where aa.a = bb.a\n   and aa.b = bb.b\n   and to_char(aa.date)||aa.c||aa.d||aa.e = bb.sortkey\n


Thanks, I think that'll do it.

I didn't understand what Ben meant when I first read his post, but it looks clear in retrospect. I'm in the habit of thinking of data as discrete objects and didn't consider stringing their text together.