Задавайте вопросы, мы ответим
Вы не зашли.
Всем привет !
Есть таблица - EventHistory
есть запрос
SELECT EventTime,Message,Source,Severity FROM EventHistory WHERE (EventTime Between '2017-02-23' AND '2017-02-23 23:59:59') AND (Message NOT LIKE '%снят%') Order by EventTime desc, Source asc
нужно чтобы выводились только строки, повторяющиеся больше 5 в колонке Source раз за 10 минут с выводом их количества.
И если например насчиталось 58 строк за 5 минут, при этом их еще есть штук 500, то их группировать так же.
пример работы:
EventTime Message Source Severity Kol-vo
2017-02-23 23:59:59 Отсутствие связи с БП1 ConErrorBP_1 101 58
2017-02-23 23:54:51 Отсутствие связи с БП1 ConErrorBP_1 101 44
2017-02-23 23:50:09 Отсутствие связи с БП1 ConErrorBP_1 101 63
2017-02-23 23:48:13 Отсутствие связи с БП12 ConErrorBP_12 4 13
2017-02-23 23:44:10 Отсутствие связи с БП4 ConErrorBP_4 4 32
и т.д.
фильтр Message NOT LIKE '%снят%' обязателен
короче для анализа логов
Неактивен
Делайте двойную группировку - по сперва времени, потом по source - и отфильтровывайте путем having count(*) > 5. Идея такая.
Неактивен
deadka написал:
Делайте двойную группировку - по сперва времени, потом по source - и отфильтровывайте путем having count(*) > 5. Идея такая.
знать бы как.
я в SQL почти не шарю. Простой запрос еще могу. А этот навороченный запрос мне в свой код вставить надо для дальнейших процедур.
Неактивен
Неактивен
deadka написал:
SELECT
`EventTime`,`Source`,count(*) as `co`
FROM
`EventHistory `
WHERE
(`EventTime` Between '2017-02-23' AND '2017-02-23 23:59:59') AND (`Message` NOT LIKE '%снят%')
GROUP BY
`EventTime`,`Source`
HAVING
`co` > 5
ORDER BY
`EventTime` DESC, `Source` ASC
Спасибо огромное. Завтра попробую.
А где из этого видно, что сообщения группируются за промежуток в 5 минут ?
Неактивен
пишет invalid column name 'co'
Неактивен