Mysql统计每年每个月的数据(前端页面统计图实现)

编辑:睿儿发表于:2021-03-12 20:12:38 26 次阅读

在做项目的时候需要按月统计工单表内的信息总数

前端如下:

image.png


在后台数据库操作的时候需要用以下命令:

select
sum(case month(addTime) when '1'  then id else 0 end) as Jan,
sum(case month(addTime) when '2'  then id else 0 end) as Feb,
count(case month(addTime) when '3'  then id else 0 end) as Mar,
sum(case month(addTime) when '4'  then id else 0 end) as Apr,
sum(case month(addTime) when '5'  then id else 0 end) as May,
sum(case month(addTime) when '6'  then id else 0 end) as June,
sum(case month(addTime) when '7'  then id else 0 end) as July,
sum(case month(addTime) when '8'  then id else 0 end) as Aug,
sum(case month(addTime) when '9'  then id else 0 end) as Sept,
sum(case month(addTime) when '10' then id  else 0 end) as Oct,
sum(case month(addTime) when '11' then id  else 0 end) as Nov,
sum(case month(addTime) when '12' then id  else 0 end) as Dece
from gongdan_list
where year(addTime)='2021';


mysql查询结果如下:

image.png

因为只有3月有内容,所以其它月份为0  


在查询命令中 用 count 就是统计数量  用 sum 就是求和,,下图就是用sum的结果  它把 ID的总数给加起来了。

image.png


经过测试如果都用 count的话数值都是一样的,所以需要做一个统计的字段都默认为1 然后让它们相加起来。


其实就是说它统计了全表12次,每一次都是按月份进行对比,如果有就是1 没有就是0。

最终改为这样,成功!


image.png


再加是 ISNULL 就完美了,这样就可以在没有内容的时候也返回 0

image.png

原文地址:http://www.zjkdh.com/library/202103/74.html(张家口导航-睿儿知识库)

张家口睿儿网络科技有限公司版权所有