mysql分组后占比、累计占比和排序计算方法
1.求group by之后和的占比
先做group by分组汇总,再单独inner join连接到和,最后分组结果除以连接到的和
select ifnull(hour_diff,'--合计--') hour_diff,count(1) cnt,count(1)/tot pct
from (select timestampdiff(hour,createtime,activate_time) hour_diff from t_consumer) w
inner join (select count(1) tot from t_consumer) c
group by hour_diff
with rollup;
2.求group by之后和的累计占比
先求group by之后和的占比,再利用@s参数对占比进行累加
set @s=0;
select *,@s:=@s+pct cul_pct
from(select ifnull(hour_diff,'--合计--') hour_diff,count(1) cnt,count(1)/tot pctfrom (select timestampdiff(hour,createtime,activate_time) hour_diff from t_consumer) winner join (select count(1) tot from t_consumer) c group by hour_diffwith rollup) wc;
3.对每行数据进行排序
对每行数据利用@rank参数从1开始累加即可排序
set @s=0;
set @rank=0;
select *,@s:=@s+pct cul_pct,@rank:=@rank+1 rank
from(select ifnull(hour_diff,'--合计--') hour_diff,count(1) cnt,count(1)/tot pctfrom (select timestampdiff(hour,createtime,activate_time) hour_diff from t_consumer) winner join (select count(1) tot from t_consumer) c group by hour_diffwith rollup) wc;
mysql分组后占比、累计占比和排序计算方法相关推荐
- mysql 排序取前4,mysql分组取每组前几条记录(排序)
首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效). CREATE TABLE `mygoods` ...
- mysql分组后统计个数,然后计算出每组个数占比
业务场景:当我们使用SQL对数据分完组之后,能得到分组后的数据.但无法拿到整个数据的情况,明显一个查询是无法实现的.要么使用关联查询. 表结构及数据 分析:这里根据性别sex进行统计人数,可以看到男有 ...
- mysql分组后组内排序_数据小白的转行之路-MYSQL(七)
目录 一. 什么是窗口函数? 1. 什么是窗口函数 窗口函数,可以对数据库数据进行实时分析处理. 基本语法如下: <窗口函数> over by (partition by <要分组的 ...
- mysql分组后去重效率_mysql-mb6018ead621887的博客-51CTO博客
目录MySQL讲解一.启动服务 二.MySQL命令之数据库操作 三. MySQL命令之表操作 四.MySQL语法规范 五.DQL语言(主查询) 六.DML语言(对表中的数据操作) 七.DDL语言(表字 ...
- mysql分组后组内排名_SQL实现group by 分组后组内排序
在一个月黑风高的夜晚,自己无聊学习的SQL的时候,练习,突发奇想的想实现一个功能查询,一张成绩表有如下字段,班级ID,英语成绩,数据成绩,语文成绩如下图 实现 查询出 每个班级英语成绩最高的前两名的记 ...
- mysql分组后组内排序_图解排序 3/10 希尔排序
希尔排序,它是由 D.L.Shell 于1959 年提出而得名.根据它的名字很难想象算法的核心思想.[ 所以只能死记硬背了,面试官问:希尔排序的思想是什么?].它的核心思想是把一个序列分组,对分组后的 ...
- MySQL分组后取每一组第N条数据
1.知识点 group_concat()函数:聚合函数 1.功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果. 2.语法:group_concat( [distinct] 要 ...
- mysql分组排列的查询语句_数据的排序与分组语句_MySQL
bitsCN.com 数据的排序与分组语句 使用SQL语句执行查询操作时,我们可能发现查询出的数据结果的排序是无序的.为了更好的观察数据表中的查询结果,开发人员或者用户经常要对查询的数据进行排序操作, ...
- mysql分组后,取每组第一条数据
在mysql 5.7之前(不包括5.7) select * from (select a.* from template_detail awhere a.template_id in (3, 4)or ...
最新文章
- Spring中-IOC-Bean的初始化-循环依赖的解决
- 会话、进程组与僵死进程
- spring AOP编程
- html 文本框 无法输入,无法在HTML文本框中输入任何东西
- Apollo 2.0发布前 试乘百度L3、L4级自动驾驶汽车
- linux 多进程 同步,Linux内核同步,进程,线程同步
- 查询成绩最好的前两名_SQL查询整理
- 计算机考试67,计算机等级考试(国家)-二级c机试模拟67.doc
- java服务器访问html_浏览器输入服务器端口号来访问html网页
- 图解think php,图解ThinkPHP5框架(三):配置类Config.php源码解读
- 安平仓管王 5000xp v2.9 免费下载
- C语言程序——标准输出格式
- 安装cude11.2.exe报错:Could not create file “C: )Users\xxx\ AppData \Local\ Temp \CUDA\GFExperience
- [单片机框架][bsp层][AT32F415][bsp_tim] tim定时器配置和使用
- 腾讯云阿里云4月服务器价格对比
- JavaScript 变量命名规范总结
- 不仅仅生成图片,用GAN做无监督的异常检测
- 其他 | 狼人杀入门
- python 死循环捕捉输入异常
- crc16modbus查表法_分别用定义法和查表法求取MODBUS_CRC16的值