0

您好我正在尝试编写一个查询来完成以下操作:(我对 MySQL 没有那么丰富的经验)

从 origcmd 字段中提取所请求页面的文件扩展名,仅是文件扩展名。无论文件扩展名的长度如何,它都必须工作。我想按页面对其进行分组并计算每组中有多少条记录。然后按对每个分组中记录进行计数的字段对分组记录进行降序排序。

表:WebLog 列:ipno、dunno1、dunno2 origdate、origzone、origcmd、recode、bytes

数据:1.1.1.1, -, -, {15/Mar/2008:16:36:09, -0700}, GET /images/noodle.jpg HTTP/1.1,200,335

数据输出应如下所示:

| PageRequested | NumberOfHits |

+---------------+--------------+

| htm | 287 |

| gif | 217 |

| jpg | 48 |

| | 4 |

| xbm | 3 |

| cgi | 2 |

| txt | 2 |

| NULL | 2 |

| html | 1 |

我有这个正在处理的查询,但我在第一部分遇到了问题,我无法找出表格需要什么别名。

SELECT Substring_INDEX(PageRequested, '.', 1)
From(Select Substring_INDEX(origcmd, '.', -2)As PageRequested From WebLog);
4

1 回答 1

1
select PageRequested, 
   count(PageRequested) as Hits
from (
    select substring_index(substring_index(origcmd, '.', -2), ' ', 1) as PageRequested 
    from weblog) temp
group by PageRequested
order by Hits desc

工作 SQLFiddle:http ://sqlfiddle.com/#!2/94d04/3

于 2013-06-06T03:59:54.320 回答