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
投稿
猜你喜欢
- enumerate函数用于遍历序列中的元素以及它们的下标。enumerate函数说明:函数原型:enumerate(sequence, [s
- 本文实例为大家分享了Python实现简单扫雷游戏的具体代码,供大家参考,具体内容如下#coding: utf-8__note__ = &qu
- 目录1. 术语说明2. 简单字段名2.1 简单字段名的说明2.2 省略字段名2.3 数字形式的简单字段名2.4 变量名形式的简单字段名2.5
- 首先要声明的是1,游标的方法会很慢在mysql中,在oracle数据库中还可以,除非没有别的方法,一般不建议在mysql中使用游标,2,不建
- 本文实例讲述了Python实现将数据框数据写入mongodb及mysql数据库的方法。分享给大家供大家参考,具体如下:主要内容:1、数据框数
- /* **************************************************************
- 公式如下:rand() * (y-x) + x咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随
- 前言Javascript 团体的每个人都喜欢新的API,语法更新以及特性,它们提供了更好的,更智能,更有效的方式以完成重要的任务。继上一篇的
- JavaScript: <script type="text/javascript"> var level1
- 使用pandas库来读取xlsx格式中的数据。excel中数据:示例代码1:import pandas as pd# data = pd.r
- 本文实例讲述了PHP中soap的用法,分享给大家供大家参考。具体用法分析如下:PHP 使用soap有两种方式。一、用wsdl文件服务器端:&
- 我们常常会用到PHP过滤一些标签的功能,比如过滤链接标签、过滤script标签等等,下面就介绍一下PHP过滤常用标签的正则表达式代码:$st
- 工欲善其事必先利其器,Python开发利器Pycharm常用快捷键以及配置如下,相信有了这些快捷键,你的开发会事半功倍一 常用快捷键编辑类:
- 用FrontPage做网页的朋友们,你的主要页面中,可能都带有许多相同的元素吧?如页头横向排列(或左侧纵向排列)的主要链接按钮、页底的板权说
- while循环是在Python中的循环结构之一。 while循环继续,直到表达式变为假。表达的是一个逻辑表达式,必须返回一个true或fal
- 导语:目前点评“2008年10佳改版网站”也许为时尚早,但2008年毕竟已经过去了9个多月,周四又同时有Twitter和FriendFeed
- Expression定义 IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这
- 您可以使用 ObjectContext 对象提交或放弃一项由 Microsoft Transaction Server (MTS) 管理的事
- 在使用Python编写面向对象的代码时,我们会常常使用“继承”这种开发方式。例如下面这一段代码:class Info: def
- 这篇文章主要介绍了Python监控服务器实用工具psutil使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习