SQL之统计某一状态数量
由于公司业务需要,需要查询出不同状态下的设备数量:用常规方法,则有多少种状态则需要写多少个SQL。现在用聚合函数,实现一条SQL查询出表中不同状态的设备数量。
<!--查询当前设备类型下设备统计--> <select id="getDeviceCountByType" parameterType="com.coship.common.dto.ds.DeviceQuantityParam"resultMap="deviceTypeResultMap">SELECTt2.DEVICE_TYPE AS Device_Type,t2.DEVICE_TYPE_NAME AS Device_Type_Name,
IFNULL(SUM(CASE WHEN t1.STATUS='1' THEN 1 ELSE 0 END ),0) AS Alarm,IFNULL(SUM(CASE WHEN t1.STATUS='2' THEN 1 ELSE 0 END ),0) AS Normal,IFNULL(SUM(CASE WHEN t1.STATUS='3' THEN 1 ELSE 0 END ),0) AS Failure,IFNULL(SUM(CASE WHEN t1.STATUS IN ('1','2','3') THEN 1 ELSE 0 END ),0) AS Total
FROM t_device t1,t_device_type t2 WHERE t1.DEVICE_TYPE_ID = t2.ID<if test="spCode != null and spCode != ''">AND t1.SUPPLIER_ID = #{spCode}</if><if test="deviceType != null and deviceType != ''">and t2.DEVICE_TYPE = #{deviceType}</if>group by t2.DEVICE_TYPE </select>
IFNULL()的用法
<select id="selectCartProductCount" resultType="int" parameterType="int">select IFNULL(sum(quantity),0) as countfrom immall_cartwhere user_id = #{userId} </select>
如果 sum 为 null,是不可以传给基本类型 int 的;如果更改返回值类型 int 为 Integer 则又会在 service层报错。怎么办呢?
我们当时是不希望发生报错的啊,利用 IFNULL()函数,赋予一个默认值0,当 sum(quantity) 为 null 时,返回默认值。这样就解决了。
SQL之统计某一状态数量相关推荐
- 5-5array统计tcp连接状态数量
#vim count_tcpconn_status.sh 名字和数组最好有一个区分 如果要持续实时查看执行结果,可以使用watch命令 转载于:https://blog.51cto.com/54509 ...
- easy connect 获取服务端配置信息失败_如何统计 Mysql 服务器状态信息?
最近在看<高性能的 Mysql>一书,下面是关于如何学习统计 Mysql 服务器状态的学习总结,主要是学习使用 SHOW STATUS,SHOW ENGINE INNODB STATUS, ...
- 全废话SQL Server统计信息(2)——统计信息基础
接上文:http://blog.csdn.net/dba_huangzj/article/details/52835958 我想在大地上画满窗子,让所有习惯黑暗的眼睛都习惯光明--顾城<我是一个 ...
- Always On可用性组中SQL Server统计信息
SQL Server统计信息简介 (Introduction to SQL Server Statistics) SQL Server Statistics are an essential part ...
- SQL Server统计信息以及如何在SQL中执行更新统计信息
This article gives a walk-through of SQL Server Statistics and different methods to perform SQL Serv ...
- t–sql pl–sql_不正确SQL Server统计信息– SQL查询性能的杀手–基本知识
t–sql pl–sql 什么是SQL Server统计信息? (What are SQL Server statistics?) SQL Server statistics are a collec ...
- SQL汇总统计与CUBE概念
SQL汇总统计(Group by, ROLLUP, CUBE)与CUBE概念 第一层:[GROUP BY]将一个"数据集"划分成若干个"小区域",然后针对若干个 ...
- SQL Server统计信息:问题和解决方式
SQL Server统计信息:问题和解决方式 参考文章: (1)SQL Server统计信息:问题和解决方式 (2)https://www.cnblogs.com/yutingliuyl/p/7257 ...
- SQL语句统计每天、每月、每年的数据
SQL语句统计每天.每月.每年的数据 1.每年 select year(ordertime) 年, sum(Total) 销售合计 from 订单表 group by year(ordertime) ...
最新文章
- 【组队学习】【34期】组队学习内容详情
- php for循环执行函数,自执行函数用for结束后面不能访问循环变量
- 拥抱大家庭,nodejs走thrift
- android任务栈的作用,Android 启动模式以及任务栈
- windows查看linux文件中文,Linux 系统下无法查看Windows 中创建的中文文件名
- 单身税的时代就要来临,你还没有用Python帮你找一个女朋友吗?
- 华为服务器内存位置,服务器上的内存在哪里
- cocoStudio UI编辑器设置自定义字体
- 互联网公司招聘--今日头条--产品经理-2017年笔试题1
- python毕业论文参考文献格式_毕业论文参考文献规范格式
- 基于SmartQQ协议的QQ自动回复机器人-1
- 2019年末,10 位院士对 AI 的深度把脉(下)
- 作品交流:锁相环环路滤波器系数、NCO增益单位、鉴相器输出之间的关系
- 4816 江哥的dp题b
- iPhone屏幕分辨率
- 把酸性体质改变成碱性体质的秘密
- U8采购入库单API接口示例(参照采购到货)
- SIM卡所能保存的联系人姓名长度研究。
- mysql数据库常用存储引擎的区别
- mysql group concat 去重,MySQL group_concat() 函数用法
热门文章
- DDR4相比DDR3的变更点
- 1维数组 2维数组
- easyui中文乱码怎么解决_jquery easyui乱码怎么办
- 南京大学与东南大学的计算机,南京大学和东南大学对比分析报告
- Third season eighteenth episode,hypnotic recording(maybe you can remember 吕子乔)
- 十年磨一剑---看中伊之战有感
- [英文歌曲]斗士:Fighter
- B站上线互动视频功能:仅对粉丝量过万的up主开放
- 【Rust日报】2020-11-09 构建可测试性的 Rust 工程
- 【算法-面试】区间专题