mysql如何分组统计并求出百分比
作者:木木-木 发布时间:2024-01-22 02:07:51
标签:mysql,分组统计,百分比
mysql分组统计并求出百分比
1、mysql 分组统计并列出百分比
SELECT
point_id,
pname_cn,
play_num,
round( play_num / total * 100, 2 ) as `ratio`
FROM
(
SELECT
*
FROM
( SELECT
ANY_VALUE ( `point_id` ) AS point_id,
ANY_VALUE ( `pname_cn` ) AS pname_cn,
sum( `play` ) AS play_num
FROM
`dt_collect_antique` WHERE`add_time` BETWEEN '2020-07-02' AND '2020-07-05' GROUP BY `point_id` ) t1
INNER JOIN
( SELECT
sum( `play` ) AS total
FROM
`dt_collect_antique` WHERE`add_time` BETWEEN '2020-07-02' AND '2020-07-05'
) t2 ON 1 = 1
) t
ORDER BY
`play_num` DESC
LIMIT 0, 10;
--查出符合条件并且分组, 统计出每组数量
SELECT
ANY_VALUE ( `point_id` ) AS point_id,
ANY_VALUE ( `pname_cn` ) AS pname_cn,
sum(`like`) as like_num
FROM
`dt_collect_antique` WHERE`add_time` BETWEEN '2020-07-02' AND '2020-07-05' GROUP BY `point_id` ) t1
--查出符合条件,总数量
(SELECT
sum( `play` ) AS total
FROM
`dt_collect_antique` WHERE`add_time` BETWEEN '2020-07-02' AND '2020-07-05'
) t2
2、按年龄段分组,并求个年龄段占比
SELECT
age_group,
age_total,
round( age_total / total * 100, 2 ) as `ratio`
FROM
(
SELECT
*
FROM
( SELECT
SUM(total) AS age_total,
CASE
WHEN age >= 0 AND age < 18 THEN '18岁以下'
WHEN age >= 18 AND age <= 25 THEN '18岁到25岁'
WHEN age >= 26 AND age <= 35 THEN '26岁到35岁'
WHEN age >= 36 AND age <= 45 THEN '36岁到45岁'
WHEN age >= 46 AND age <= 60 THEN '46岁到60岁'
ELSE '60岁以上' END
AS age_group FROM dt_collect_age WHERE `add_time` BETWEEN ".$time[0]." AND ".$time[1]." GROUP BY age_group
) t1
INNER JOIN
( SELECT
SUM( `total` ) AS total
FROM
`dt_collect_age` WHERE `add_time` BETWEEN ".$time[0]." AND ".$time[1]."
) t2 ON 1 = 1
) t
LIMIT 0, 6;
mysql求百分比的几种方法
函数介绍
1、ROUND(X,D)和ROUND(X)
round函数用于数据的四舍五入,x指要处理的数,d是指保留几位小数
round(x) ,其实就是 round(x,0)
d可以是负数,代表指定小数点左边的d位整数位为0,同时小数位均为0
2、FORMAT(X,D)
提供数据内容格式化功能,可以格式化数据为整数或者浮点数,能四舍五入
D为负数时,按0处理
3、LEFT(str,len)
left函数是一个字符串函数,它返回具有指定长度的字符串的左边部分,str为要处理的字符串,len为长度
left函数为字符串截取,不能四舍五入
4、CONCAT(str1,str2,...)
concat函数用于将多个字符串连接成一个字符串
利用round,format,left与concat求百分比
注意:使用left按位截取百分比时,位数要根据需要合理设置,否则容易出现意外BUG
来源:https://blog.csdn.net/qq_38776443/article/details/107167702
0
投稿
猜你喜欢
- 1.什么是Appiumappium是一个开源的测试自动化框架,可以与原生的、混合的和移动的web应用程序一直使用。它使用WebDriver协
- 我们在选择一件商品的时候,会先了解一些相关的商品信息,根据自己的需求和情况再进行选择。这种现象也同样适用于找工作,筛选一个岗位的重要环节,就
- 模型VGG,数据集cifar。对照这份代码走一遍,大概就知道整个pytorch的运行机制。 来源 定义模型:'''V
- 函数:startswith()作用:判断字符串是否以指定字符或子字符串开头一、函数说明语法:string.startswith(str, b
- 前言:如何做到,控制多设备并行执行测试用例呢。思路篇我们去想下,我们可以获取参数的信息,和设备的信息,那么我们也可以针对每台设备开启不一样的
- 一·算术运算符在python中,算术运算符与数学中的算术运算极为类似,只是有些运算符号有所差别。算术运算符的算术计算一
- 首先,了解下原理。1,提供文本框进行查询内容的输入2,将查询信息提交页面程序处理3,程序页主要作用:接受查询信息,根据此信息调用特定的SQL
- Python在3.4引入了 asyncio 库,3.6新增了关键字 async和await,此后,异步框架迅速发展了起来,性能上能和Node
- 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两
- 一、概述Python Flask是一个轻量级的Web应用程序框架,它是使用Python编写的,用于快速开发Web应用程序和API。它的设计理
- 本文实例为大家分享了python OpenCV实现答题卡识别判卷的具体代码,供大家参考,具体内容如下完整代码:#导入工具包import nu
- 秉承着一切皆对象的理念,我们再次回头来看函数(function)。函数也是一个对象,具有属性(可以使用dir()查询)。作为对象,它还可以赋
- 本文中,abigale代表查询字符串,ada代表数据表名,alice代表字段名。技巧一:问题类型:ACCESS数据库字段中含有日文片假名或其
- PDOStatement::debugDumpParamsPDOStatement::debugDumpParams — 打印一条 SQL
- 下面给大家介绍下mysql 8.0.16 初次登录修改密码mysql数据库初始化后初次登录需要修改密码初次登录会碰到下面这个错误ql>
- 本文实例讲述了python基于pygame实现响应游戏中事件的方法。分享给大家供大家参考,具体如下:先看一下我做的demo效果:当玩家按下键
- 手残更新Pycharm 2020.1 版时将配置文件都删除了😂;在此重新记录下配置!安装教程参考:idea2020.1最新版永久破解/pyc
- 前言生成器generator生成器的本质是一个迭代器(iterator)要理解生成器,就要在理解一下迭代,可迭代对象,迭代器,这三个概念Py
- 制作NBA数据爬虫捋顺思路我们在这里选择的是百度体育带来的数据,我们在百度当中直接搜索NBA跳转到网页,我们可以看到,百度已经为我们提供了相
- mysql installer community 8.0.16.0安装图文教程,,供大家参考,具体内容如下一、下载mysql-instal