MySQL通过分组计算百分比
公司在做柯米克的分析报告,需要我这边把汽车之家柯米克论坛的评论数据和评论用户所在地的数据获取,通过爬虫的方式很快的解决了数据的问题,但是需要我提取下各省评论人数的比例,所以在数据库里面直接计算了相关的比例,把结果提交了,在这里记录下这个实现的方式。
下面看下评论用户取数据的表结构

但是获取的用户位置数据是adcode,这里还需要关联下adcode 码表,adcode码表数据结构(部分数据的截图);

1.首先我们需要把码表和用户表通过adcode关联起来,这样我们才知道具体的省份;
2.我们需要通过分组的方式获取到每个省份的通过人数有多少人;
3.然后再去计算各省人数的比例;
SELECT
CONCAT(
ROUND(
t1.total / t2.totalCount * 100,
2
),
'%'
) AS 各省人数百分比
FROM
(
SELECT
count(U.user_pid) AS total,
D. NAME,
U.user_pid
FROM
auto_home_user AS U
INNER JOIN dict_city AS D ON D.id = U.user_pid
GROUP BY
user_pid
) t1,
(
SELECT
count(*) AS totalCount
FROM
auto_home_user
) t2
这里主要用到两个SQL的函数 ROUND和CONCAT,其他的都是比较常用的函数和语法
ROUND 主要是截取数值的小数位置,这里我保留了2位小时;
SELECT ROUND(19.8883434,2);
运行结果

CONCAT 主要用户字符串的连接,这里与ORACLE 需要做下区别,Oracle 通过 || 关联;
语法:
CONCAT(str1,str2,...) # str1,str2,.... 代表多个字符串
示例:
SELECT CONCAT("Hello","World")
结果:

这里特殊在多介绍一个方法,通过指定的分隔符连接字符串CONCAT_WS
语法:
CONCAT_WS(separator,str1,str2,...) # separator 指分隔符,str1,str2,.... 代表多个字符串
示例:
SELECT CONCAT_WS(",","Hello","World") AS 字符串链接;
结果:

MySQL通过分组计算百分比的更多相关文章
- devexpress表格gridcontrol实现分组,并根据分组计算总计及平均值
1.devexpress表格控件gridcontrol提供了强大的分组功能,你几乎不用写什么代码就可以实现一个分组功能,并且可根据分组计算总计和平均值.这里我例举了一个实现根据班级分组计算班级总人数, ...
- MySQL 对分组后的同类数据进行拼接字符串
MySQL 对分组后的同类数据进行拼接字符串 写后台方法时遇到个问题,需要将表内同一订单号的操作记录流水进行简单拼接输出,不想取出来再操作,找了个mysql的方法直接操作 //group_concat ...
- R 分组计算描述性统计量
统计学区内各个小区的房价均值 数据格式 id|community_name|house_area|house_structure|house_total|house_avg|agency_name|h ...
- spark 例子groupByKey分组计算2
spark 例子groupByKey分组计算2 例子描述: 大概意思为,统计用户使用app的次数排名 原始数据: 000041b232,张三,FC:1A:11:5C:58:34,F8:E7:1E:1E ...
- spark 例子groupByKey分组计算
spark 例子groupByKey分组计算 例子描述: [分组.计算] 主要为两部分,将同类的数据分组归纳到一起,并将分组后的数据进行简单数学计算. 难点在于怎么去理解groupBy和groupBy ...
- mysql数据库优化课程---10、mysql数据库分组聚合
mysql数据库优化课程---10.mysql数据库分组聚合 一.总结 一句话总结:select concat(class,' 班') 班级,concat(count(*),' 人') 人数 from ...
- python库学习笔记——分组计算利器:pandas中的groupby技术
最近处理数据需要分组计算,又用到了groupby函数,温故而知新. 分组运算的第一阶段,pandas 对象(无论是 Series.DataFrame 还是其他的)中的数据会根据你所提供的一个或多个键被 ...
- sql中计算百分比
sql中计算百分比:(转成字符串然后拼接%) ),) AS CHAR),'%') as aa from act_canal; 效果:
- pandas之分组计算笔记
分组计算三部曲:拆分-->应用-->合并 分组:就是按照行或列把相同索引的部分分到一起 分组的关键词为groupby,分组后我们就可以对每组数据进行同一操作,返回的是每组数据分别计算后的结 ...
随机推荐
- Rancher2.0中部署Longhorn分布式存储实验
目录 1.简介 2.实验环境 3.应用商店中部署longhorn 4.创建工作负载,使用longhorn存储 5.查看longhorn UI 6.注意事项 1.简介: Longhorn是Rancher ...
- get函数
dict={"name":"jary","age":22}print(dict.get("age")) # 通过键值找到 ...
- Python自学:第二章 使用函数str( )避免类型错误
age = 23 message = "Happy " + str(age) + "rd Birthday" print(message) 输出位 Happy ...
- Web版记账本开发记录(七)
经过不懈的努力,虽然开发出来的还有瑕疵,但今后我会继续努力的.
- Pycharm:设置Tab键一次性为4个空格
File > Settings > Editor > Code Style > Python
- css新单位vw,vh在响应式设计中的应用
考虑到未来响应式设计的开发,如果你需要,浏览器的高度也可以基于百分比值调整.但使用基于百分比值并不总是相对于浏览器窗口的大小定义的最佳方式,比如字体大小不会随着你窗口改变而改变,如今css3引入的新单 ...
- CSS布局-body高度不等于页面高度
记录采坑: 博客记录问题,用作回忆用,不喜勿喷! html,body{width: 100%; height: 100%}这是初始定义的宽高.在布局越写越复杂的时候,布局很容易出现问题,例如一个页面中 ...
- 201621123075 week06-接口、内部类
1.本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰, ...
- CSS Basic Memo
1.bootstrap 清除浮动原理 .clearfix:before, .clearfix:after { content: ' ', display: table } .clearfix:afte ...
- spring boot 添加客户端负载均衡
1.pom.xml文件中,添加依赖包 <dependency> <groupId>org.springframework.cloud</groupId> <a ...