mysql 数据分析如何实现日报、周报、月报和年报?
以天为统计周期,是常见需求。周报、月报更是常见需求。长周期项目,甚至有年报需求。我已经掌握了 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 等函数可用呢?这纯属我的推理,那试试看吧。 果然可行。但美中不足的是,返回的周数和月数不带年份。当数据量跨年时,它会把每年相同周数或月数的数据加在一起。如何实现 某年某月 和 某年某周 呢?已有知识储备去推理,没找到答案,那就直接搜索吧! 3、搜索找答案 经过搜索和尝试发现,在mysql中用 date_format(column_name,'%Y-%m') 来代替 month() 就能拿到 年月 值。 如果把其中代表月month的关键字 m 换成周week呢?试试看。分别尝试: date