LINUX.ORG.RU

История изменений

Исправление Darth_Revan, (текущая версия) :

Без оконных функций тяжело…
Что ж, вроде бы, так работает:

SELECT `agent`, SUM(timestampdiff(SECOND, prev_time, `time`)) AS DIFF
FROM (
  SELECT t1.agent, t1.time, MAX(t2.time) AS prev_time
    FROM (SELECT * FROM queue_log WHERE `event` = 'UNPAUSE' AND `agent` = '2038') AS t1
    INNER JOIN (SELECT * FROM queue_log WHERE `event` = 'PAUSE' AND `agent` = '2038') AS t2
    ON t2.time < t1.time GROUP BY t1.time ORDER BY t1.time
) AS t3;

Исходная версия Darth_Revan, :

Без оконных функций тяжело…
Что ж, вроде бы, так работает:

SELECT `agent`, SUM(timestampdiff(SECOND, prev_time, `time`)) AS DIFF
FROM (
  SELECT t1.agent, t1.time, MAX(t2.time) AS prev_time
    FROM (SELECT * FROM queue_log WHERE event = 'UNPAUSE' AND agent = '2038') AS t1
    INNER JOIN (SELECT * FROM queue_log WHERE event = 'PAUSE' AND agent = '2038') AS t2
    ON t2.time < t1.time GROUP BY t1.time ORDER BY t1.time
) AS t3;