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分组后占比、累计占比和排序计算方法相关推荐

  1. mysql 排序取前4,mysql分组取每组前几条记录(排序)

    首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效). CREATE TABLE `mygoods` ...

  2. mysql分组后统计个数,然后计算出每组个数占比

    业务场景:当我们使用SQL对数据分完组之后,能得到分组后的数据.但无法拿到整个数据的情况,明显一个查询是无法实现的.要么使用关联查询. 表结构及数据 分析:这里根据性别sex进行统计人数,可以看到男有 ...

  3. mysql分组后组内排序_数据小白的转行之路-MYSQL(七)

    目录 一. 什么是窗口函数? 1. 什么是窗口函数 窗口函数,可以对数据库数据进行实时分析处理. 基本语法如下: <窗口函数> over by (partition by <要分组的 ...

  4. mysql分组后去重效率_mysql-mb6018ead621887的博客-51CTO博客

    目录MySQL讲解一.启动服务 二.MySQL命令之数据库操作 三. MySQL命令之表操作 四.MySQL语法规范 五.DQL语言(主查询) 六.DML语言(对表中的数据操作) 七.DDL语言(表字 ...

  5. mysql分组后组内排名_SQL实现group by 分组后组内排序

    在一个月黑风高的夜晚,自己无聊学习的SQL的时候,练习,突发奇想的想实现一个功能查询,一张成绩表有如下字段,班级ID,英语成绩,数据成绩,语文成绩如下图 实现 查询出 每个班级英语成绩最高的前两名的记 ...

  6. mysql分组后组内排序_图解排序 3/10 希尔排序

    希尔排序,它是由 D.L.Shell 于1959 年提出而得名.根据它的名字很难想象算法的核心思想.[ 所以只能死记硬背了,面试官问:希尔排序的思想是什么?].它的核心思想是把一个序列分组,对分组后的 ...

  7. MySQL分组后取每一组第N条数据

    1.知识点 group_concat()函数:聚合函数 1.功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果. 2.语法:group_concat( [distinct] 要 ...

  8. mysql分组排列的查询语句_数据的排序与分组语句_MySQL

    bitsCN.com 数据的排序与分组语句 使用SQL语句执行查询操作时,我们可能发现查询出的数据结果的排序是无序的.为了更好的观察数据表中的查询结果,开发人员或者用户经常要对查询的数据进行排序操作, ...

  9. mysql分组后,取每组第一条数据

    在mysql 5.7之前(不包括5.7) select * from (select a.* from template_detail awhere a.template_id in (3, 4)or ...

最新文章

  1. Spring中-IOC-Bean的初始化-循环依赖的解决
  2. 会话、进程组与僵死进程
  3. spring AOP编程
  4. html 文本框 无法输入,无法在HTML文本框中输入任何东西
  5. Apollo 2.0发布前 试乘百度L3、L4级自动驾驶汽车
  6. linux 多进程 同步,Linux内核同步,进程,线程同步
  7. 查询成绩最好的前两名_SQL查询整理
  8. 计算机考试67,计算机等级考试(国家)-二级c机试模拟67.doc
  9. java服务器访问html_浏览器输入服务器端口号来访问html网页
  10. 图解think php,图解ThinkPHP5框架(三):配置类Config.php源码解读
  11. 安平仓管王 5000xp v2.9 免费下载
  12. C语言程序——标准输出格式
  13. 安装cude11.2.exe报错:Could not create file “C: )Users\xxx\ AppData \Local\ Temp \CUDA\GFExperience
  14. [单片机框架][bsp层][AT32F415][bsp_tim] tim定时器配置和使用
  15. 腾讯云阿里云4月服务器价格对比
  16. JavaScript 变量命名规范总结
  17. 不仅仅生成图片,用GAN做无监督的异常检测
  18. 其他 | 狼人杀入门
  19. python 死循环捕捉输入异常
  20. crc16modbus查表法_分别用定义法和查表法求取MODBUS_CRC16的值

热门文章

  1. 一篇公司管理的文章,很好:一个小公司老板的日常管理,希望能让创业的朋友学到东西(引用)
  2. 定金和订金的区别 不知道可能一分钱也要不回来
  3. Matlab多元非线性回归(nlinfit 函数)
  4. 【linux】查看本机的网关地址
  5. 一命二运三风水,四积功德五读书。
  6. 阿里云Redis 外网访问
  7. Mysql高级(锁、日志)
  8. 应对电力交易市场化挑战,企业如何做好能耗管控
  9. SkyWalking 入门教程
  10. Scrapy实现微博关键词爬虫(爬虫结果写入mongodb)