Mysql——查询同一张表中各个状态类型的数据统计

笔记 同时被 2 个专栏收录
7 篇文章 0 订阅
10 篇文章 0 订阅

一、表中数据

在这里插入图片描述

需要计算出:
数据表中设备总数激活/未激活数开启/关闭数在线/离线数有效/无效数

二、如何处理

大部分时候,可能采取分sql的形式进行操作,然后将数据整合。

但如果想把所有查询计算逻辑存于一个sql中操作并输出,如何进行操作?

此处需要借用 mysql 自带的 case when then函数。

SELECT 
	COUNT(*) as totalCount,
	SUM(CASE is_active WHEN 1 THEN 1 ELSE 0 END ) as activeCount ,
	SUM(CASE is_active WHEN 0 THEN 1 ELSE 0 END ) as noActiveCount,
	SUM(CASE is_online WHEN 1 THEN 1 ELSE 0 END ) as onlineCount,
	SUM(CASE is_online WHEN 0 THEN 1 ELSE 0 END ) as noOnlineCount,
	SUM(CASE open_status WHEN 1 THEN 1 ELSE 0 END ) as closeSwitchCount,
	SUM(CASE open_status WHEN 0 THEN 1 ELSE 0 END ) as openSwitchCount
FROM switch_list ;

在这里插入图片描述

其实,case还有另外的写法,增加条件判断

SELECT 
	COUNT(*) as totalCount,
	SUM(CASE WHEN is_active=1 THEN 1 ELSE 0 END ) as activeCount 
FROM switch_list ;

在这里插入图片描述

三、参考资料

mysql 查询一张表中某个字段不同状态的数量,用于表格统计

  • 1
    点赞
  • 0
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

MYSQL常用命令 1.导出整个数据mysqldump -u 用名 -p –default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个 mysqldump -u 用户名 -p 数据库名 名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql 3.导出一个数据库结构 mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:wcnc_db.sql -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 A:常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source wcnc_db.sql B:使用mysqldump命令 mysqldump -u username -p dbname < filename.sql C:使用mysql命令 mysql -u username -p -D dbname 2、退出MySQL:quit或exit 二、库操作 1、创建数据库 命令:create database 例如:建立一个名为xhkdb的数据mysql> create database xhkdb; 2、显示所有的数据库 命令:show databases (注意:最后有个s) mysql> show databases; 3、删除数据库 命令:drop database 例如:删除名为 xhkdb的数据mysql> drop database xhkdb; 4、连接数据库 命令:use 例如:如果xhkdb数据库存在,尝试存取它: mysql> use xhkdb; 屏幕提示:Database changed 5、查看当前使用的数据mysql> select database(); 6、当前数据库包含的信息: mysql> show tables; (注意:最后有个s) 三、操作,操作之前应连接某个数据库 1、建 命令:create table ( [,.. ]); mysql> create table MyClass( > id int(4) not null primary key auto_increment, > name char(20) not null, > sex int(4) not null default ’′, > degree double(16,2)); 2、获取结构 命令:desc 名,或者show columns from mysql>DESCRIBE MyClass mysql> desc MyClass; mysql> show columns from MyClass; 3、删除 命令:drop table 例如:删除名为 MyClass 的 mysql> drop table MyClass; 4、插入数据 命令:insert into [( [,.. ])] values ( 值 )[, ( 值n )] 例如,往 MyClass插入二条记录, 这二条记录示:编号为的名为Tom的成绩为.45, 编号为 的名为Joan 的成绩为.99,编号为 的名为Wang 的成绩为.5. mysql>insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59); 5、查询表中数据 1)、查询所有行 命令:select <字
©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值