以天为统计周期,是常见需求。周报、月报更是常见需求。长周期项目,甚至有年报需求。我已经掌握了mysql
中按天统计,如何实现按年、按月、按周统计呢?
1、已掌握的技能:按天统计
实现以天为统计周期很简单。具体来说,date()
函数可返回时间数据的日期,即仅有年月日,没有时分秒信息。结合 group by
可实现按天统计。
以天为统计周期的数据指标非常多,随便举例,比如每日新增注册用户数。
select
date(created_at) as 注册日期,
count(user_id) as 用户数
from
users
group by
注册日期
order by
注册日期
2、从已知推理,拓展技能
既然date()
函数可用,那么是否有对应的 year
、month
、week
等函数可用呢?这纯属我的推理,那试试看吧。
果然可行。但美中不足的是,返回的周数和月数不带年份。当数据量跨年时,它会把每年相同周数或月数的数据加