mysql 统计每月的数量 sql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 统计每月的数量 sql相关的知识,希望对你有一定的参考价值。

比如这张表 我要查 每个月 的数量占总数量的分值 要显示第几月 还要显示出time中没有的月份(比如1月没有 1月就显示0)

数据表中不存在的月份也要显示,建议创建一个从1到12月份的表作为比对表。如果不方便创建月份比对表则可以用select 1到12的办法来虚拟这个月份比对表,但是语句会有些冗长。请参考下列写法:

select months.year,months.month, 
concat(ifnull(t.sumMonthNum,'0'),
'/',months.sumYearNum) as `月/年比`
from 
(select * from 
(select year(time) as year,
sum(num) as sumYearNum 
from abc group by year(time)) years, 
(select 1 as month union all 
select 2 union all 
select 3 union all 
select 4 union all 
select 5 union all 
select 6 union all 
select 7 union all 
select 8 union all 
select 9 union all 
select 10 union all 
select 11 union all 
select 12) months) months left join 
(select year(time) as year,
month(time) as month,
sum(num) as sumMonthNum 
from abc group by year(time),month(time)) t 
on months.month=t.month 
order by months.year,months.month;

实验截图如下:

源表数据

SQL代码及运行结果

参考技术A 求表a中b字段所有数据的和
select sum(b)
from a

以上是关于mysql 统计每月的数量 sql的主要内容,如果未能解决你的问题,请参考以下文章

要统计不同部门的每月在职员工数&离职员工数

SQL语句统计每天、每月、每年的销售总额

SQL 查询统计每月签到次数

Mysql:每月统计记录(包括零)

SQL语句统计每天每月每年的 数据

SQL语句统计每天每月每年的 数据