如何计算过去一年中每个月MySql数据库的结果数量,其中可能不存在特定月份的记录,但它会显示为计数为零?例如,我想计算每个月发生的注册数量,并在没有注册的情况下包括那些结果。
Month Count 1 4 2 2 . . . . 6 0 . . . .
答案 0 :(得分:1)
尽管存在很多答案,但我发现其中大部分都难以阅读和理解。但是,使用派生表,我认为使用下面给出的查询更容易,我们试图从用户表中计算过去12个月的注册数量:
select derived.mm as month, count(u.reg_date) as count from (
SELECT 1 mm 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
) derived
left join user u
on derived.mm = month(reg_date)
and u.reg_date > LAST_DAY(DATE_SUB(curdate(),INTERVAL 1 YEAR))
group by derived.mm
如何运作
希望这可以帮助别人。