2012-04-13 44 views
0

我有一大組日誌條目,我需要做一個分析。我想要做的是爲每組日誌選擇開始和完整條目之間的時間差。我會如何去做這件事?MySQL如何選擇兩個日誌條目之間的時間差?

Sample Log Set: 

ExecuteTime, Entry, TrackKey 
7.2408730984, Start update, 487996b0608b0006bfbe5501217c76bde879b728 
9.9038851261, Complete update, 487996b0608b0006bfbe5501217c76bde879b728 

回答

1

我想開始的時間是最小的,結束時間是最大的。如果不是這樣,這個查詢將會出錯

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

未經測試:

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 
相關問題