比如我表test里面有id,mc,xh三个字段(分别是自动编号,钢材名称(若干种),钢材型号(大号,中号,小号))

id    mc            xh
钢管 大号
铜管 大号
铁管 小号
铝管 中号
钢管 小号

我现在要分别统计出“mc”里面的各种型号的东西有多少。意思是:
我要统计钢管,铜管,铁管,铝管的大,中,小号各有多少条记录。

并且mc里面的是不固定的,可能还有金管,还有熟料管什么的,,但是xh里面只有三种情况,那就是大号,中号,小号:

1.在mysql中建立一个测试数据表

CREATE TABLE `tb_test_count` (
`id` bigint(20) NOT NULL,
`mc` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
`xh` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

2.插入一批数据

INSERT INTO tb_test_count VALUES(1,'钢管','大号');
INSERT INTO tb_test_count VALUES(2,'铜管','大号');
INSERT INTO tb_test_count VALUES(3,'铁管','小号');
INSERT INTO tb_test_count VALUES(4,'铝管','大号');
INSERT INTO tb_test_count VALUES(5,'铝管','小号');
INSERT INTO tb_test_count VALUES(6,'钢管','大号');
INSERT INTO tb_test_count VALUES(7,'钢管','小号');

3.查询统计的SQL语句

select mc,count(case when xh='大号' then 1 end) as 大号,
count(case when xh='中号' then 1 end) as 中号,
count(case when xh='小号' then 1 end) as 小号
from tb_test_count
group by mc

4.查询结果截图如下:

5.如果使用sum方法查询则(当数据一条都不存在的时候查询出来的结果是null)

select mc,sum(case when xh='大号' then 1 end) as 大号,
sum(case when xh='中号' then 1 end) as 中号,
sum(case when xh='小号' then 1 end) as 小号
from tb_test_count
group by mc

当一个表中需要统计某个字段中不同类型的数据条数的时候,可以使用该方法。

mysql如何分类统计数量的更多相关文章

  1. linux mysql添加、删除用户、用户权限及mysql最大字段数量

    1.  登录: mysql -u username -p 显示全部的数据库: show databases; 使用某一个数据库: use databasename; 显示一个数据库的全部表: show ...

  2. Java 感知Mysql存储过程变量数量

    在项目中,可能会遇到sybase 移植到 mysql的情况,因为sybase 支持存储过程的可变参数,而mysql不能支持,所以,在调用mysql的时候,需要感知存储过程到底有几个参数,来合理的配置参 ...

  3. MySql 在大数量的统计中具体的使用技巧

    一.CASE WHEN THEN ELSE END 使用用法. 在用sql语句统计某字段的某种状态的出现的次数,可以考虑用到 CASE WHEN THEN ELSE END 使用用法.当数据量过于庞大 ...

  4. MYSQL查询男女数量的存储过程

    存储过程代码: BEGIN IF sex_id =0 THEN SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='女' INTO sex_co ...

  5. mysql获取分类数量

    1.sql <select id="getTypeNum" resultType="TypeNum" > select count(*) as al ...

  6. Mysql 查询表字段数量

    select count(*) from information_schema.`COLUMNS` where TABLE_SCHEMA='dbName' -- 数据库名 and TABLE_NAME ...

  7. 深入浅出MySQL 数据库开发、优化与管理维护(第2版) -- 读书笔记 -- 基础篇

      1.切换数据库 use blog; 2.显示当前数据库 所有的表. show tables; +----------------+ | Tables_in_blog | +------------ ...

  8. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  9. Zabbix监控mysql performance

    介绍 zabbix监控mysql性能,使用zabbix自带的mysql监控模板,可以监控以下内容OPS(增删改查).mysql慢查询数量.mysql请求\响应流量带宽 配置 新建mysql监控用户 G ...

随机推荐

  1. SharePoint PowerShell 修改计时器任务

    前言 最近碰到需要修改计时器任务的需求,然后搜了搜,发现有powershell命令可以搞定,记录一下. $timerJob = Get-SPTimerJob -Identity "DocID ...

  2. .Net Standard Http请求实例

    一 ..Net Standard http协议封装 程序集: System.Net.Http.dll 命名 空间:System.Net.Http HttpClient :http请求 发送类 Form ...

  3. Excel VBA 从一个工作簿查找另一个一个工作簿中的一些内容复制到另外一个工作簿

    帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需 ...

  4. Understanding Linux CPU stats

    Your Linux server is running slow, so you follow standard procedure and run top. You see the CPU met ...

  5. 很漂亮的Wince开发控件库Beemobile简介【转】

    https://blog.csdn.net/xiaoyong_net/article/details/80467653 官网地址:http://beemobile4.net/products/ipac ...

  6. windows 通过Web.config添加mimetype映射

    在Web.config里添加以下代码即可 <configuration> <system.webServer> <staticContent> <!-- re ...

  7. js闭包的使用

    js闭包的使用 学习了:https://www.cnblogs.com/ZinCode/p/5551907.html 终于用上了闭包,还是有些生涩:好像柿子还没熟: function createLi ...

  8. CMake can't find GLEW

      Q: I'm on Windows and there is a FindGLEW.cmake file in my CMake modules folder, presumably put th ...

  9. dubbo 提示No such extension Filter for filter/com.alibaba.dubbo.rpc.Filter

    配置时 <dubbo:provider filter="DubboExceptionFilter"></dubbo:provider> DubboExcep ...

  10. 无法ping通自身

    今日,ping localhost 超时,ping 127.0.0.1 显示一般故障.无法访问自己电脑上的tomcat.... 居然,居然是防火墙打开了,关了就好了.我勒个去!!!!