MySQL通过分组计算百分比_mysql求占比百分比_一个天蝎座的程序猿的博客-程序员宅基地

技术标签: java  mysql  

一、简单的2表关联查询,进行分组,计算出每组数据占总数百分比

一、简单的2表关联查询,进行分组

 SELECT
        COALESCE (b.name, '总数') 'name',
        COUNT(b.name) 'cnt'
    from device a
    LEFT JOIN device_type b on
    a.type_id = b.id where a.del_flag=0
    GROUP BY b.name WITH ROLLUP

输出结果:

在这里插入图片描述
计算出每个分组数据个数,
WITH ROLLUP:计算出数据条数。135为 主表总条数。

计算总数据条数:

 SELECT
        COUNT(*) AS totalCount
    from device a
    LEFT JOIN device_type b on
    a.type_id = b.id where a.del_flag=0

拼接计算百分比保留2位小数

SELECT 
 CONCAT(
        ROUND(
            t1.total / t2.totalCount * 100,
            2
        ),
        '%'
    ) AS '各省人数百分比',t1.`name`
FROM
    (
    SELECT
       COALESCE (b.name, '总数') 'name',
        COUNT(b.name) AS total
    from device a
    LEFT JOIN device_type b on
    a.type_id = b.id where a.del_flag=0
    GROUP BY b.name
    ) t1,
(
          SELECT
        COUNT(*) AS totalCount
    from device a
    LEFT JOIN device_type b on
    a.type_id = b.id where a.del_flag=0
    ) t2 ;

运行结果:
在这里插入图片描述

这里主要用到两个SQL的函数 ROUND和CONCAT,其他的都是比较常用的函数和语法

ROUND 主要是截取数值的小数位置,这里我保留了2位小时;
concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL,此处拼接数值和%

此处我的计算totalCount为表的总记录数去统计,因为我的cnt字段数量是数据分组获得。
根据你的业务需求,如过你的字段在库里有具体数值进行计算百分比,类型分组统计不变,求和用sum函数求该字段之和。
*

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45566762/article/details/123918524

智能推荐

牛客网在线编程:分苹果_weixin_30794499的博客-程序员宅基地

题目描述:n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1...

文本文件读写_weixin_34120274的博客-程序员宅基地

为什么80%的码农都做不了架构师?>>> ...

Mask R-CNN --Faster RCNN 学习笔记_i_linda的博客-程序员宅基地

这是根据多篇文章整理的文件,仅供参考!一)、整体框架我们先整体的介绍下上图中各层主要的功能1)、Conv layers提取特征图:作为一种CNN网络目标检测方法,Faster RCNN首先使用一组基础的conv+relu+pooling层提取input image的feature maps,该feature maps会用于后续的RPN层和全连接层2)、RPN(Regio...

页面置换算法_Octoberone的博客-程序员宅基地

#include <stdio.h>#include <stdlib.h>#include <cstdlib>#include <string.h>#include <SDKDDKVer.h>#ifndef _UNISTD_H#define _UNISTD_H#include <IO.H>#include <PROCES...

pcntl php windows_非阻塞模式与PHP多进程,就知道你不懂_changlei chen的博客-程序员宅基地

程序非阻塞模式,这里也可以理解成并发。而并发又暂且可以分为网络请求并发 和本地并发 。先说一下网络请求并发理论描述假设有一个client,程序逻辑是要请求三个不同的server,处理各自的响应。传统模型当然是顺序执行,先发送第一个请求,等待收到响应数据后再发送第二个请求,以此类推。就像是单核CPU,一次只能处理一件事,其他事情被暂时阻塞。而并发模式可以让三个server同时处理各自请求,这就可以使...

ie&Google浏览器下背景色渐变_牧马少女的博客-程序员宅基地

background: -webkit-gradient(linear, 0 0, 0 100%, from(#80c1e7), to(#213c7c));background: -webkit-linear-gradient(top,#34a496,#f6ff92);background: -moz-linear-gradient(top,#34a496,#f6ff92);backgroun

随便推点

session入memcache_session 入memcache_余韵悠扬的博客-程序员宅基地

<?phpini_set("session.save_handler", "memcache");ini_set("session.save_path", "tcp://localhost:11211");session_start();header("Content-type:text/html;charset=utf-8");$_SESSION['view'] = 'zhangsan

java中map集合类用法(hashmap用法)_weixin_34329187的博客-程序员宅基地

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

HDU 5475 An easy problem 线段树_weixin_33720452的博客-程序员宅基地

An easy problemTime Limit: 1 Sec  Memory Limit: 256 MB题目连接http://acm.hdu.edu.cn/showproblem.php?pid=5475DescriptionOne day, a useless calculator was being built by Kuro...

Android之Rxjava2.X 7————Rxjava 条件操作符_冰炭不投day的博客-程序员宅基地

Android之Rxjava2.X 7————Rxjava 条件操作符一. 目录Android之Rxjava2.X 7————Rxjava 条件操作符一. 目录二. 概述1.作用2.类型三. 具体操作符详解1.all()2.takeWhile()3.skipWhile()4.takeUntil()5.skipUntil()6.SequenceEqual()...

虚拟机上的Linux配置tftp服务器与下载uImage到mini2440开发板成功经验_Sonictl的博客-程序员宅基地

我配tftp想下载u-boot.bin到NandFlash。我的Fedora14是跑在win7 PC 上的virtualbox虚拟机上的。win7PC与开发板通过一根网线直连。此时问题出来了:我不明白Fedora14怎么通过VBox使用win7的网卡继而与开发板建立tftp服务。不明白网络相关的知识,有没有相关的教材?谢谢!不是请问简单的tftp的下载,配置,启动等问题,而是想知道如何设置ip

推荐文章

热门文章

相关标签