2012-04-13 13 views
0

私は、分析を行うために必要な大量のログエントリを持っています。私がやりたいことは、ログの各セットについて、開始と完全なエントリとの間の時間差を選択することです。これをどうやってやりますか?MySQLセットの2つのログエントリの時間差を選択するにはどうすればよいですか?

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 
関連する問題