【问题标题】:Multiple substrings with table and column aliases具有表和列别名的多个子字符串
【发布时间】:2013-06-06 03:47:04
【问题描述】:

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

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

表:WebLog 列:ipno、dunno1、dunno2 origdate、origzone、 origcmd,重新编码,字节

数据: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);

【问题讨论】:

    标签: mysql subquery substring alias


    【解决方案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

    【讨论】:

    • 感谢您的回复,但我收到 PageRequested is an unknown column 有什么建议吗?
    • @Ashwin Mukhija 抱歉,您的编辑后我没有刷新页面,我会试试这个。
    • 在运行第二个查询后,它正在拉取数据,但它不仅仅拉取文件扩展名,例如 HTML 或 JPG 等。有什么建议吗?
    • 哦等等,HTTP1.1 也是 origcmd 的一部分吗?
    • 是的。我将数字更改为-2,它会拉动文件扩展名,但它右侧的所有内容也都拉动。我只想要文件扩展名
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多