首页 > 数据库 >MySQL通过分组计算百分比

MySQL通过分组计算百分比

时间:2022-10-15 13:37:04浏览次数:47  
标签:百分比 CONCAT str2 pid 分组 user MySQL ROUND SELECT

原文链接: https://www.likecs.com/show-338886.html?sc=1200

下面看下评论用户取数据的表结构

但是获取的用户位置数据是adcode,这里还需要关联下adcode 码表,adcode码表数据结构(部分数据的截图);

1.首先我们需要把码表和用户表通过adcode关联起来,这样我们才知道具体的省份;

2.我们需要通过分组的方式获取到每个省份的通过人数有多少人;

3.然后再去计算各省人数的比例;

SELECT
    CONCAT(
        ROUND(
            t1.total / t2.totalCount * 100,
            2
        ),
        \'%\'
    ) AS 各省人数百分比
FROM
    (
        SELECT
            count(U.user_pid) AS total,
            D. NAME,
            U.user_pid
        FROM
            auto_home_user AS U
        INNER JOIN dict_city AS D ON D.id = U.user_pid
        GROUP BY
            user_pid
    ) t1,
    (
        SELECT
            count(*) AS totalCount
        FROM
            auto_home_user
    ) t2 

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

ROUND 主要是截取数值的小数位置,这里我保留了2位小时;

SELECT ROUND(19.8883434,2);

运行结果

CONCAT 主要用户字符串的连接,这里与ORACLE 需要做下区别,Oracle 通过 || 关联;

语法:

CONCAT(str1,str2,...)  # str1,str2,.... 代表多个字符串

示例:

SELECT CONCAT("Hello","World")

结果:

这里特殊在多介绍一个方法,通过指定的分隔符连接字符串CONCAT_WS

语法:

CONCAT_WS(separator,str1,str2,...)  # separator 指分隔符,str1,str2,.... 代表多个字符串

示例:

SELECT CONCAT_WS(",","Hello","World") AS 字符串链接;

结果:

标签:百分比,CONCAT,str2,pid,分组,user,MySQL,ROUND,SELECT
From: https://www.cnblogs.com/fswhq/p/16784843.html

相关文章

  • MAC MYSQL问题解决方案
    目录下载安装添加环境变量下载安装添加环境变量zsh:commandnotfound:mysql说明环境变量没有添加上方案一:cd~vim~/.bashrc//打开的文档中加入下面这句话alia......
  • javaweb链接到数据库(mysql)操作
    准备:配置好数据库,下好mysqlconnect第一步:将myconnec文件复制到webapp文件下WEB-INF的lib文件中,然后右键构建路径。第二步:定义String类型的Name(数据库的用户名)和psw(数......
  • 二进制安装MySQL
    只在centos7.9上测试了安装mysql5.7版本,脚本只是个人学习之余爱好,有问题希望大佬帮忙指正和修改建议#!/bin/bash#***************************************************......
  • MySQL的简单安装配置
    一.简单了解MySQL1.在了解MySQL之前因该了解的东西数据库(Database)指长期存储在计算机内的、有组织的、可共享的数据集合。数据库实际上就是一个文件集合,是一个存储数据......
  • mysql索引分类以及创建使用
    一、索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和......
  • 【精品】windows下JDK1.8+MySQL8.X 安装运行 Seata1.5.2
    网上看到了很多seata的讲解,就我搜到的内容来看:要么是版本太低,要么是前置条件没有交待清楚,要么是讲解的不清不楚,为了节省同学们学习摸索的时间,所以写了该篇博客。环境Wind......
  • mysql建立索引的原则
    mysql建立索引的原则:1)定义主键的数据列一定要建立索引。2)定义有外键的数据列一定要建立索引。3)对于经常查询的数据列最好建立索引。4)对于需要在指定范围内......
  • MySQL----语言基础
    MySQL----语言基础语法特点SQL对关键字的大写不敏感SQL语句可以单行或者多行书写,以分号;结束。SQL的注释:--单行注释,--后面一定要加一个空格‘单行注释,可以不用加......
  • MySQL 8.x Error All In One
    MySQL8.xErrorAllInOneloginerrorERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)问题排查https://www.cnblogs.com/z......
  • MySQL体系结构和存储引擎
    1.数据库和实例数据库:物理操作系统文件或其他形式文件类型的集合。实例:MySQL数据库由后台线程以及一个共享内存区组成。(数据库实例才是真正用于操作数据库文件的)实例与......