统计mysql其实很好写,主要是要理清要的结果是什么,不要一上来就写sql,先分析清楚需求,再下手也不迟
今天项目中首页需要统计数据,最难的不是分析不清,最难的是不知道知道一个日期怎么去获取想要的时,天,以及月,不过这个倒也还行,毕竟有很多前辈已经总结好了,但是还是得自己记一下,知道怎么回事。
首先想清楚要获取的数据为每小时的统计,还有总数,想到这个每小时的统计肯定是要以小时来分组了,再看where条件,是一天中,所以将时间转换成天,也就是日,与现在的日相等来获取数据,剩下的一月中的每天统计数据和一年中的每月也是这个思路,好了,现在开始贴sql了:
一天中每小时的统计数据:
select hour(addTime) as hour,count(*) as count from `pro_user` where to_days(addtime)=to_days(now()) group by hour(addTime) order by hour(addtime);
一月中每天的总数:
select day(addTime) as day,count(*) as count from `pro_user` where month(addtime)=month(now()) group by day(addTime) order by day(addtime);
一年中每个月的总数:
select month(addTime) as month,count(*) as count from `pro_user` where year(addTime)=year(now()) group by month(addTime) order by month(addTime);