0

我想使用 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

上面的输出告诉我“发送”请求得到了 67 个成功(200)和 8 个失败(500)的命中。

我很难理解如何仅通过一个查询来获得此输出。

我可以通过简单地按 cs-uri-stem 和 cs-status 分组来轻松生成此输出。但这会将结果放入两个单独的行中:

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

我想在同一行得到结果。使用 LogParser 甚至可能吗?

任何帮助,将不胜感激。

4

1 回答 1

1

很简单,使用该CASE语句生成两个合成字段,一个在 cs-status 为 200 时为 1,否则为 0,另一个字段在 cs-status 为 500 时为 1,否则为 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
...
于 2019-02-24T10:59:30.827 回答