ROUND と AVG を探している
WITH DATASET
AS (SELECT TO_TIMESTAMP_TZ ( '11/8/2013 1:16:22', 'MM/DD/YYYY HH24:MI:SS' ) AS TS,
200 AS DURATION
FROM DUAL
UNION ALL
SELECT TO_TIMESTAMP_TZ ( '11/8/2013 1:16:22', 'MM/DD/YYYY HH24:MI:SS' ) AS TS,
100 AS DURATION
FROM DUAL
UNION ALL
SELECT TO_TIMESTAMP_TZ ( '11/8/2013 2:16:22', 'MM/DD/YYYY HH24:MI:SS' ) AS TS,
300 AS DURATION
FROM DUAL
UNION ALL
SELECT TO_TIMESTAMP_TZ ( '11/8/2013 3:16:22', 'MM/DD/YYYY HH24:MI:SS' ) AS TS,
500 AS DURATION
FROM DUAL
UNION ALL
SELECT TO_TIMESTAMP_TZ ( '11/8/2013 4:16:22', 'MM/DD/YYYY HH24:MI:SS' ) AS TS,
600 AS DURATION
FROM DUAL
UNION ALL
SELECT TO_TIMESTAMP_TZ ( '11/8/2013 4:16:22', 'MM/DD/YYYY HH24:MI:SS' ) AS TS,
700 AS DURATION
FROM DUAL)
SELECT ROUND ( TS, 'Hh24' ) AS TIMESTAMP_VAL,
AVG ( DURATION ) AS DURATION
FROM
DATASET
GROUP BY
ROUND ( TS, 'Hh24' )
ORDER BY
TIMESTAMP_VAL;
注: extract(hour from systimestamp) は、タイム ゾーン オフセットを減算します。