История изменений
Исправление anonymus123, (текущая версия) :
Есть такое. Да event могут идти подряд одинаковые. Нужно брать первое вхождение каждого и между ними считать время. А еще, если задан временной интервал для выборки и первый event «UNPAUSE» то вместо отсутствующего, первого «PAUSE» нужно брать время начала интервала выборки. А в конце интервала, если после «PAUSE» нет «UNPAUSE» - то вместо отсутствующего последнего «UNPAUSE» нужно брать время окончания интервала выборки. )
Вот более полный вид:
select time,agent,event from queue_log where agent='2038' and event like '%PAUS%';
+----------------------------+-------+------------+
| time | agent | event |
+----------------------------+-------+------------+
| 2019-12-12 17:03:50.347362 | 2038 | PAUSEALL |
| 2019-12-12 17:03:50.353069 | 2038 | PAUSE |
| 2019-12-12 17:03:57.830454 | 2038 | UNPAUSEALL |
| 2019-12-12 17:03:57.838925 | 2038 | UNPAUSE |
| 2019-12-12 17:04:02.749672 | 2038 | PAUSEALL |
| 2019-12-12 17:04:02.755322 | 2038 | PAUSE |
| 2019-12-12 17:04:35.345739 | 2038 | UNPAUSEALL |
| 2019-12-12 17:04:35.352714 | 2038 | UNPAUSE |
| 2019-12-12 17:04:43.891641 | 2038 | PAUSEALL |
| 2019-12-12 17:04:43.897645 | 2038 | PAUSE |
| 2019-12-12 17:04:47.403480 | 2038 | UNPAUSEALL |
| 2019-12-12 17:04:47.410228 | 2038 | UNPAUSE |
| 2019-12-13 15:51:33.962705 | 2038 | PAUSE |
| 2019-12-13 15:51:39.380298 | 2038 | UNPAUSE |
| 2019-12-14 23:48:19.191524 | 2038 | PAUSE |
| 2019-12-14 23:48:30.946623 | 2038 | PAUSE |
| 2019-12-15 11:20:00.798159 | 2038 | UNPAUSEALL |
| 2019-12-15 11:20:00.804379 | 2038 | UNPAUSE |
| 2019-12-15 22:27:11.150670 | 2038 | PAUSE |
| 2019-12-15 22:27:18.140039 | 2038 | UNPAUSE |
| 2019-12-15 22:27:27.325629 | 2038 | PAUSE |
| 2019-12-15 22:27:33.711765 | 2038 | UNPAUSE |
+----------------------------+-------+------------+
То, что добавились *ALL - вроде не проблема (LIKE ‘PAUSE%’, LIKE ‘UNPAUSE%’). Но они могут идти подряд (в моем случае ‘PAUSEALL’=‘PAUSE’ по смыслу, по времени могут отличаться. То же и с «UNPAUSE» и «UNPAUSEALL»)
Исправление anonymus123, :
Есть такое. Да event могут идти подряд одинаковые. Нужно брать первое вхождение каждого и между ними считать время. А еще, если задан временной интервал для выборки и первый event «UNPAUSE» то вместо отсутствующего, первого «PAUSE» нужно брать время начала интервала выборки. А в конце интервала, если после «PAUSE» нет «UNPAUSE» - то вместо отсутствующего последнего «UNPAUSE» нужно брать время окончания интервала выборки. )
Вот более полный вид:
select time,agent,event from queue_log where agent='2038' and event like '%PAUS%';
+----------------------------+-------+------------+
| time | agent | event |
+----------------------------+-------+------------+
| 2019-12-12 17:03:50.347362 | 2038 | PAUSEALL |
| 2019-12-12 17:03:50.353069 | 2038 | PAUSE |
| 2019-12-12 17:03:57.830454 | 2038 | UNPAUSEALL |
| 2019-12-12 17:03:57.838925 | 2038 | UNPAUSE |
| 2019-12-12 17:04:02.749672 | 2038 | PAUSEALL |
| 2019-12-12 17:04:02.755322 | 2038 | PAUSE |
| 2019-12-12 17:04:35.345739 | 2038 | UNPAUSEALL |
| 2019-12-12 17:04:35.352714 | 2038 | UNPAUSE |
| 2019-12-12 17:04:43.891641 | 2038 | PAUSEALL |
| 2019-12-12 17:04:43.897645 | 2038 | PAUSE |
| 2019-12-12 17:04:47.403480 | 2038 | UNPAUSEALL |
| 2019-12-12 17:04:47.410228 | 2038 | UNPAUSE |
| 2019-12-13 15:51:33.962705 | 2038 | PAUSE |
| 2019-12-13 15:51:39.380298 | 2038 | UNPAUSE |
| 2019-12-14 23:48:19.191524 | 2038 | PAUSE |
| 2019-12-14 23:48:30.946623 | 2038 | PAUSE |
| 2019-12-15 11:20:00.798159 | 2038 | UNPAUSEALL |
| 2019-12-15 11:20:00.804379 | 2038 | UNPAUSE |
| 2019-12-15 22:27:11.150670 | 2038 | PAUSE |
| 2019-12-15 22:27:18.140039 | 2038 | UNPAUSE |
| 2019-12-15 22:27:27.325629 | 2038 | PAUSE |
| 2019-12-15 22:27:33.711765 | 2038 | UNPAUSE |
+----------------------------+-------+------------+
То, что добавились *ALL - вроде не проблема (LIKE ‘PAUSE%’, LIKE ‘UNPAUSE%’). Но они могут идти подряд (в моем случае ‘PAUSEALL’=‘PAUSE’ по смыслу, по времени могут отличаться …)
Исходная версия anonymus123, :
Есть такое. Да event могут идти подряд одинаковые. Нужно брать первое вхождение каждого и между ними считать время. А еще, если задан временной интервал для выборки и первый event «UNPAUSE» то вместо отсутствующего, первого «PAUSE» нужно брать время начала интервала выборки. А в конце интервала, если после «PAUSE» нет «UNPAUSE» - то вместо отсутствующего последнего «UNPAUSE» нужно брать время окончания интервала выборки. )
Вот более полный вид:
select time,agent,event from queue_log where agent='2038' and event like '%PAUS%';
+----------------------------+-------+------------+
| time | agent | event |
+----------------------------+-------+------------+
| 2019-12-12 17:03:50.347362 | 2038 | PAUSEALL |
| 2019-12-12 17:03:50.353069 | 2038 | PAUSE |
| 2019-12-12 17:03:57.830454 | 2038 | UNPAUSEALL |
| 2019-12-12 17:03:57.838925 | 2038 | UNPAUSE |
| 2019-12-12 17:04:02.749672 | 2038 | PAUSEALL |
| 2019-12-12 17:04:02.755322 | 2038 | PAUSE |
| 2019-12-12 17:04:35.345739 | 2038 | UNPAUSEALL |
| 2019-12-12 17:04:35.352714 | 2038 | UNPAUSE |
| 2019-12-12 17:04:43.891641 | 2038 | PAUSEALL |
| 2019-12-12 17:04:43.897645 | 2038 | PAUSE |
| 2019-12-12 17:04:47.403480 | 2038 | UNPAUSEALL |
| 2019-12-12 17:04:47.410228 | 2038 | UNPAUSE |
| 2019-12-13 15:51:33.962705 | 2038 | PAUSE |
| 2019-12-13 15:51:39.380298 | 2038 | UNPAUSE |
| 2019-12-14 23:48:19.191524 | 2038 | PAUSE |
| 2019-12-14 23:48:30.946623 | 2038 | PAUSE |
| 2019-12-15 11:20:00.798159 | 2038 | UNPAUSEALL |
| 2019-12-15 11:20:00.804379 | 2038 | UNPAUSE |
| 2019-12-15 22:27:11.150670 | 2038 | PAUSE |
| 2019-12-15 22:27:18.140039 | 2038 | UNPAUSE |
| 2019-12-15 22:27:27.325629 | 2038 | PAUSE |
| 2019-12-15 22:27:33.711765 | 2038 | UNPAUSE |
+----------------------------+-------+------------+
То, что добавились *ALL - вроде не проблема (LIKE ‘PAUSE%’, LIKE ‘UNPAUSE%’). Но они могут идти подряд (в моем случае ‘PAUSEALL’=‘PAUSE’ …)