-1

我在 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 字段的最短时间,并计算给定日期范围内的平均最短时间(在本例中为 11 月 28 日至 31 日)

所以上面的结果应该是:13:30:21 + 11:30:55 + 9:22:51 /3 = 11:27:42 作为平均最短时间

同样对于最大时间。

提前致谢

4

1 回答 1

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)
)
于 2012-04-13T09:47:02.107 回答