MySQL数据库Group by分组之后再统计数目Count(*)与不分组直接统计数目的区别

简述问题“统计最新时刻处于某一状态的设备的数量”

1. 首先子查询结果,可以看到每个设备最新的状态信息

 

2.1 在子查询的基础上,对设备状态进行分组,进行统计每个状态的设备数量

 2.1.1 可以看到处于'火警'状态的数量是2,没有问题,但是看下一张图

  

 2.1.2 可以看到处于'故障'状态的数量是(n/a),此处便出现问题,如果你将此值返回,service层则会报nullpointexception,进行try...catch可以解决

  

  serviceImpl层处理方式

  

2.2 在子查询的基础上,不进行分组,直接统计每个状态的数量信息,可以得到正确结果,count如果没有查询到数据,则返回的默认值是0(火警的就不再演示)

  

结论:

  1.子查询中:group by分组和order by排序如果一起使用的话,进行排序的是分组之后的数据

  2.外层查询:当进行分组之后进行count(*)查询,当查询不到时,返回的默认值是(n/a),需要在逻辑层进行判断;

        不进行分组,使用count(*)查询,此时查询不到的话,返回的默认值是0。

(0)

相关推荐

  • select子句

    select子句

  • 从零开始学SQL数据分析,SQL数据分组与透视

    数据分组是对相同类别的数据进行汇总,而数据透视表是通过对行或列的不同组合对数据进行汇总,所使用的汇总方法有求和.计数.平均值.标准差等,本文使用SQL对数据进行数据分组和数据透视,下面一起来学习. 普 ...

  • mysql数据库中利用GROUP

    mysql数据库中利用GROUP_CONCAT)把查询的结果列合并分组显示 效果图 在数据库中group by 一列查询出若干行数据,sql如下: select * from table group ...

  • UC头条:MySQL数据库定时备份到其他电脑

    最近我的一个学弟问了我一个问题,说他要实现一个功能,他老师给他提出来一个问题,让他的项目实现定时备份数据库到其他电脑,确保安全.他就来问我,还好我之前弄过,虽然我是干前端的,哈哈哈,之前学的比较杂. ...

  • 【竺】数据库笔记7——Mysql数据库备份

    *. mysql -u username -p password: 这个命令用于输入用户名和密码登陆mysql服务器: *.show databases;:用于查看mysql服务器中的数据库情况(会罗 ...

  • MySQL数据库有哪些优势特点?Linux数据库

    为什么众多企业都选择MySQL数据库?目前,绝大多数使用Linux操作系统的互联网企业都使用MySQL作为后端的数据库.MySQL是互联网领域里非常重要的.深受广大用户欢迎的一款开源关系型数据库软件. ...

  • 10.初中数学:因式分解x²-2ax-b²-2ab?有四项先分组,再因式分解

    初中数学:因式分解x²-2ax-b²-2ab?有四项先分组,再因式分解.大家先在草稿本上认真地做一遍,然后再看后面的视频.期待您在评论区留言. 温馨提醒:本<七年级数学>公众号,主要发布七 ...

  • Power BI连不上MySQL数据库?怎么破?

    - 1 -  直连的问题及解决办法 今天要连一个别人管理的MySQL数据库抽取数据,本来想着是个很简单的事儿,因为Power BI本身就提供了MySQL的连接器: 然鹅,当我很开心地去点"连 ...

  • win10专业版能安装上mysql数据库么

    提问win10专业版能安装上mysql数据库么?如果能,能不能给个安装步骤? 网上百度的各种方法都试过了装不上,请看清楚是win10专业版 1.同时按下键盘组合键Win+i,打开设置窗口,点击&quo ...

  • 数据库约束有什么作用?Linux运维MySQL数据库

    数据库是存储数据的仓库,由数据库表组成.数据库本质是一个文件系统,数据库以特定的格式存储数据,用户可以添加.修改.删除和查询数据库中的数据.对于运维工作者或者数据库工作者来说,数据库约束是学习数据库相 ...

  • MySQL数据库是什么?Linux数据库运维

    Mysq|是目前流行的关系型数据库管理系统.MySQL是WEB应用中较好的应用软件之一.数据库技术是管理信息系统.办公自动化系统.决策支持系统等各类信息系统的核心部分,对于互联网发展起着重要的作用.现 ...