在同一个查询中,按cs-uri-stem分组的每个sc状态500和200的命中计数?

时间:2019-02-22 15:11:56

标签: logparser iis-logs

我想使用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甚至有可能吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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
...