Oracle Database 23ai から INTERVALデータ型を集計で使えるようになりました。
INTERVALデータ型が列にある表を作成します。
CREATE TABLE time_table
(start_time TIMESTAMP,
duration_1 INTERVAL DAY (6) TO SECOND (5),
duration_2 INTERVAL YEAR TO MONTH);
集計できるように2レコードを挿入します。
SQL> INSERT INTO time_table VALUES (SYSDATE, '10 12:00:00', '9-11');
1 row created.
SQL> INSERT INTO time_table VALUES (SYSDATE, '20 05:00:00', '3-05');
1 row created.
列幅を調整して、INTERVALデータ型を集計します。
column SD1 format a30;
column AD1 format a30;
column SD2 format a15;
column AD2 format a15;
SQL> SELECT SUM(duration_1) SD1, AVG(duration_1) AD1, SUM(duration_2) SD2, AVG(duration_2) AD2
FROM time_table;
SD1 AD1 SD2 AD2
------------------------------ ------------------------------ --------------- ---------------
+000000030 17:00:00.000000000 +000000015 08:30:00.000000000 +000000013-04 +000000006-08
以上から、INTERVALデータ型を集計できました。