Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL如何在一个集合中选择两个日志项之间的时间差?_Mysql_Data Analysis - Fatal编程技术网

MySQL如何在一个集合中选择两个日志项之间的时间差?

MySQL如何在一个集合中选择两个日志项之间的时间差?,mysql,data-analysis,Mysql,Data Analysis,我有一大组日志条目需要对其进行分析。我要做的是为每组日志选择开始和完成条目之间的时间差。我该怎么做呢 Sample Log Set: ExecuteTime, Entry, TrackKey 7.2408730984, Start update, 487996b0608b0006bfbe5501217c76bde879b728 9.9038851261, Complete update, 487996b0608b0006bfbe5501217c76bde879b728 未经测试: SELEC

我有一大组日志条目需要对其进行分析。我要做的是为每组日志选择开始和完成条目之间的时间差。我该怎么做呢

Sample Log Set:

ExecuteTime, Entry, TrackKey
7.2408730984, Start update, 487996b0608b0006bfbe5501217c76bde879b728
9.9038851261, Complete update, 487996b0608b0006bfbe5501217c76bde879b728
未经测试:

SELECT * FROM Table AS t1 LEFT JOIN (SELECT MIN(Sample) AS Min, MAX(Sample) AS Max FROM Table) AS t2 ON t1.TrackKey = t2.TrackKey
更新:

SELECT
    (t3.End - t2.Start) AS Total
FROM Table AS t1
    LEFT JOIN
    (
        SELECT
            Sample AS Start
        FROM
            Table
        WHERE
            Entry = "Start update"
    ) AS t2 ON t1.TrackKey = t2.TrackKey
LEFT JOIN
    (
        SELECT
            Sample AS End
        FROM
            Table
        WHERE
            Entry = "Complete update"
    ) AS t3 ON t1.TrackKey = t3.TrackKey

我假设开始时间是最小的,结束时间是最大的。如果不是这样,这个查询将是错误的

select TrackKey, (MAX(ExecuteTime) - MIN(ExecuteTime)) as time_difference
FROM table
WHERE Entry IN('Start update', 'Complete update')
GROUP BY TrackKey