在同一查询中按 cs-uri-stem 分组的每个 sc-status 500 和 200 的命中数?
Hit count per sc-status 500 and 200 grouped by cs-uri-stem in same query?
我想使用 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 甚至可能吗?
如有任何帮助,我们将不胜感激。
很简单,使用CASE
语句生成两个合成字段,一个在cs-status为200时为1,否则为0,另一个字段在cs-status为500时为1,否则为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
...
我想使用 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 甚至可能吗?
如有任何帮助,我们将不胜感激。
很简单,使用CASE
语句生成两个合成字段,一个在cs-status为200时为1,否则为0,另一个字段在cs-status为500时为1,否则为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
...