select event as "TOP 5 Timed Events", round(cnt / (last_value(mxsid) OVER ( ORDER BY mxsid ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) - first_value(mnsid) OVER ( ORDER BY mnsid ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) ),2) asl from ( select substr(decode(session_state, 'ON CPU','CPU',event),0,25) event , count(decode(session_state, 'ON CPU','CPU',event)) cnt, max(SAMPLE_ID) mxsid, min(sample_id) mnsid from v$active_session_history where SAMPLE_TIME > sysdate - (5/(24*60)) and SESSION_TYPE = 'FOREGROUND' group by decode(session_state,'ON CPU','CPU',event) order by count(decode(session_state, 'ON CPU','CPU',event)) desc ) where rownum < 6 order by asl desc /