max(end_dt) keep (dense_rank първи ред по end_dt desc nulls първи)
актуализация:
SQL Fiddle
Настройка на схемата на Oracle 11g R2 :
СЪЗДАЙТЕ ТАБЛИЦА t (val int, s дата, e дата); ВМЕСЕТЕ ВСИЧКИ В t (val, s, e) СТОЙНОСТИ (1, sysdate-3, sysdate-2) В t (val, s, д) СТОЙНОСТИ (1, sysdate-2, sysdate-1) INTO t (val, s, e) СТОЙНОСТИ (1, sysdate-1, null) INTO t (val, s, e) СТОЙНОСТИ (2, sysdate-1, sysdate-.5) INTO t (val, s, e) VALUES (2, sysdate-.5, sysdate-.25)SELECT * FROM dual;
Запитване 1 :
изберете val, min(s), max(e) запазете (dense_rank първи ред по e desc nulls първи) от t група по val
Резултати :
<предварителен код>| VAL | MIN(S) | MAX(E)KEEP(DENSE_RANKFIRSTORDERBYEDESCNULLSFIRST) |---------------------------------------------- -------------------------------------------------- --| 1 | 13 ноември 2012 г. 14:15:46+0000 | (нула) || 2 | 15 ноември 2012 г. 14:15:46+0000 | 16 ноември 2012 г. 08:15:46+0000 |