MySQL的left,substr,instr截取字符串函数使用实例
如下:
预期结果如下: precent字段显示百分比,urlCount字段统计该url的数量。
1:如何只截取到红色标注的部分。
第一步:
先按URL分组查询
select * from pagereferrer GROUP BY url;
截取掉前8位字符“http://”
语句:
select substr(url,8) from pagereferrer GROUP BY url;
使用instr函数找到 截取掉前8位字符“http://”之后的第一个"/"斜杠位置在第几个字符。
语句:
select substr(url,8),INSTR(substr(url,8),'/') from pagereferrer GROUP BY url;
配合LEFT函数,查询到第一个" / "之前的所有字符串 ,包含" / "。并且给该列命名一个别名 url
语句:select left(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/'))as url from pagereferrer GROUP BY url;
把最后一个字符取出在left函数中加一个参数-1,并且按该列分组。
语句:select left(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1)as url
from pagereferrer
GROUP BY left(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1);
第六步:
加一个判断,使得URL显示为" / "
语句:
select case when LENGTH(left(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1))=0
then '/'
else left(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1)
end as url
from pagereferrer
GROUP BY left(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1);
完成统计不同类型URL数量和百分比显示,加一个count(1) as urlCount,统计第一列的数量。
语句:
select case when LENGTH(left(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1))=0
then '/'
else left(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1)
end as url ,count(1) as urlCount
from pagereferrer
GROUP BY left(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1);
统计百分比, 这里比较繁琐需要准备两个临时表,一个用来统计总数,一个用来统计每个分类的url数量。
先准备显示统计Url总数表:
语句:
select sum(x.urlCount) as sumUrlCount from(
select case when LENGTH(LEFT(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1))=0 then '/' else LEFT(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1) end as url,
count(1) as urlCount
from pagereferrer
group by LEFT(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1))x
语句:
select case when LENGTH(LEFT(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1))=0 then '/' else LEFT(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1) end as url,
count(1) as urlCount
from pagereferrer
group by LEFT(SUBSTR(url,8),INSTR(SUBSTR(url,8),'/')-1)
ORDER BY urlCount desc
MySQL的left,substr,instr截取字符串函数使用实例的更多相关文章
- ThinkPHP 模板substr的截取字符串函数
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...
- PHP截取字符串函数substr()函数实例用法详解
在PHP中有一项非常重要的技术,就是截取指定字符串中指定长度的字符.PHP对于字符串截取可以使用PHP预定义函数substr()函数来实现.下面就来介绍一下substr()函数的语法及其应用. sub ...
- mysql 截取字符串 函数
文章摘取自http://www.cnblogs.com/zdz8207/p/3765073.html 练习截取字符串函数(五个) mysql索引从1开始 一.mysql截取字符串函数 1.left(s ...
- Thinkphp内置截取字符串函数
Thinkphp内置了一个可以媲美smarty的模板引擎,给我们带来了很大的方便.调用函数也一样,可以和smarty一样调用自己需要的函数,而官方也内置了一些常用的函数供大家调用. 比如今天我们说的截 ...
- MySQL截取字符串函数方法
函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...
- mysql函数之二:left,right,substring,substring_index MySQL截取字符串函数方法
函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...
- SQL注入截取字符串函数
在sql注入中,往往会用到截取字符串的问题,例如不回显的情况下进行的注入,也成为盲注,这种情况下往往需要一个一个字符的去猜解,过程中需要用到截取字符串.本文中主要列举三个函数和该函数注入过程中的一些用 ...
- Mysql学习笔记(四)字符串函数
PS:终于看完了字符串函数,心都快碎了...涉及的函数真是太多了...感觉这里的字符串函数和JAVA里的基本都差不多了...基本上算是掌握了,但是想全记住那是不太可能的... 学习内容: 字符串函数的 ...
- Oracle截取字符串函数和查找字符串函数,连接运算符||
参考资料:Oracle截取字符串和查找字符串 oracle自定义函数学习和连接运算符(||) oracle 截取字符(substr),检索字符位置(instr) case when then else ...
随机推荐
- 第1章 ssh和SSH服务(包含隧道内容)
本文对SSH连接验证机制进行了非常详细的分析,还详细介绍了ssh客户端工具的各种功能,相信能让各位对ssh有个全方位较透彻的了解,而不是仅仅只会用它来连接远程主机. 另外,本人翻译了ssh客户端命令的 ...
- maven多模块项目聚合
参考文档: http://kyfxbl.iteye.com/blog/1680045 http://blog.csdn.net/wanghantong/article/details/36427411 ...
- rownumber和rowid伪劣用法
select rownum ,deptno,dname loc from dept; select deptno,dname,loc from dept where rownum=1; select ...
- ubuntu12.0.4安装启动后无法进入图形操作界面
在VMware10.0.4虚拟机上安装ubuntu12.0.4版本后,启动linux后,无法进入图形界面,但是可以进入字符界面.通过查阅网上资料,有人说是VMware的3D图形加速没有关闭,于是通过查 ...
- # nodejs模块学习: express 解析
# nodejs模块学习: express 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs 的基础不稳固,需要开发者创造大量的轮子 ...
- QC使用:
qc使用入门 qc使用安装篇:附链接http://www.cnblogs.com/alterhu/archive/2011/11/05/2237483.html qc使用配置篇:附链接http://w ...
- CSS学习(页外引用还不懂)
CSS的语法结构为 选择符 {属性:值:} Selector {Property : Value:} 选择符:通配 *{....} , 元素 body{....} .h1{....}.p ...
- C# 中的 ConfigurationManager类引用方法应用程序配置文件App.config的写法
c#添加了Configuration;后,竟然找不到 ConfigurationManager 这个类,后来才发现:虽然引用了using System.Configuration;这个包,但是还是不行 ...
- css 2D转换 transform-rotate 画插图
学习了一点2D转换,关于Transfrom-rotate的小用法 rotate()方法,在一个给定度数顺时针旋转的元素.负值是允许的,这样是元素逆时针旋转. 下面看实例 第一个例子是没有使用rotat ...
- SparkMLlib-----GMM算法
Gaussian Mixture Model(GMM)是一个很流行的聚类算法.它与K-Means的很像,但是K-Means的计算结果是算出每个数据点所属的簇,而GMM是计算出这些数据点分配到各个类别的 ...