我在oracle user_transn(userid,resourceid,transid,act_timestamp)中有一个表,其值为
(21, 14, 123321, 28-NOV-11 13:30:21)
(21, 14, 123321, 28-NOV-11 14:29:28)
(21, 14, 123321, 29-NOV-11 18:44:22)
(21, 14, 123321, 30-NOV-11 11:30:55)
(21, 14, 123321, 30-NOV-11 16:56:11)
(21, 14, 123321, 30-NOV-11 19:32:31)
(21, 14, 123321, 31-NOV-11 09:22:51)
(21, 14, 123321, 31-NOV-11 12:22:49)
(21, 14, 123321, 31-NOV-11 13:11:17)
(21, 14, 123321, 31-NOV-11 16:41:21)
查询应该占用每个不同日期的act_timestamp字段的最小时间,并计算给定日期范围内的平均最短时间(在本例中为28-31 nov)
所以对于上面的结果应该是:13:30:21 + 11:30:55 + 9:22:51 / 3 = 11:27:42 作为平均最短时间
并且类似于最长时间。
提前致谢
答案 0 :(得分:1)
选择min_timestamp
,计算时间部分的平均值,并添加当天转换回日期:
SELECT
TO_CHAR(TRUNC(SYSDATE) + AVG(min_timestamp - TRUNC(min_timestamp)), 'HH24:MI:SS')
FROM
(
SELECT MIN(act_timestamp) AS min_timestamp
FROM user_transn
GROUP BY TRUNC(act_timestamp)
)