Количество совпадений на sc-status 500 и 200, сгруппированных по cs-uri-stem в одном запросе? - PullRequest
0 голосов
/ 22 февраля 2019

Я хотел бы использовать Logparser для получения этого вывода из файла журнала IIS:

cs-uri-stem, # of cs-status=200, # of cs-status=500
/myapp/start,453,12
/myapp/send,67,8
/myapp/save,112,10

Приведенный выше вывод говорит мне, что запрос "send" получил 67 обращений, которые прошли нормально (200) и 8 не удалось(500).

У меня проблемы с пониманием того, как мне удается получить этот вывод только одним запросом.

Я могу легко получить этот вывод, просто сгруппировав по cs-uri-stem и cs-status.Но это поместит результат в две отдельные строки:

cs-uri-stem, cs-status, count
/myapp/send,200,67
/myapp/send,500,8

Я бы хотел, чтобы результат был в одной строке.Это возможно даже с LogParser?

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 24 февраля 2019

Это довольно просто, используйте оператор CASE, чтобы получить два искусственных поля: одно, которое равно 1, если cs-status равен 200, и 0 в противном случае, и другое поле, равное 1, когда cs-status равно 500, и 0 в противном случае, изатем СУММ им:

SELECT 
   SUM(Status200), SUM(Status500)
USING 
   CASE cs-status WHEN 200 THEN 1 ELSE 0 END AS Status200,   
   CASE cs-status WHEN 500 THEN 1 ELSE 0 END AS Status500
...
...