LINUX.ORG.RU

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

Исправление 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’ …)