sql 在oracle中计算没有唯一ID的日志时间差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 在oracle中计算没有唯一ID的日志时间差异相关的知识,希望对你有一定的参考价值。

CREATE TABLE x_log_time
  (
    message           VARCHAR2(2000 BYTE),
    time TIMESTAMP (6)
  );

SELECT log1.message,
  AVG(SYSDATE + (log2.TIME - log1.TIME)*24*60*60 - SYSDATE) AS run_length,
  count(log1.message) AS execution_count,
  AVG(SYSDATE + (log2.TIME - log1.TIME)*24*60*60 - SYSDATE) * count(log1.message) as total_time
FROM
  (SELECT ROW_NUMBER() over (order by TIME) + 1 AS id,
    MESSAGE,
    TIME
  FROM x_log_time
  ) log1
INNER JOIN
  (SELECT ROW_NUMBER() over (order by TIME) AS id,
    MESSAGE,
    TIME
  FROM x_log_time
  ) log2
ON log1.ID = log2.ID
GROUP BY log1.message;

以上是关于sql 在oracle中计算没有唯一ID的日志时间差异的主要内容,如果未能解决你的问题,请参考以下文章

sql 计算在线时间总长

Oracle SQL序列

Oracle sql计算分区上的不同值?

SQL插入的唯一约束-ORACLE

如何在 SQL 中计算每个用户的唯一日期的平均收入

如何从 oracle SQL 的结果中选择唯一记录?