有如下每日数据,如何按月、按周统计出具体数据?
PHP代码实现,核心是调用MySQL数据库提供的DATE_FORMAT()函数格式化时间(也可以是时间戳),变成自己想要的时间格式,再进行分组,最后再统计结果。
// 按月分组
$month_counts = Db::query('select DATE_FORMAT(date,"%Y-%m") as month,group_concat(count) as counts from jjb_user_count group by DATE_FORMAT(date,"%Y-%m");');
foreach ($month_counts as &$value){
$explodes = explode(",", $value['counts']);
$value['counts'] = array_sum($explodes);
}
// 按周分组
$week_counts = Db::query('select DATE_FORMAT(date,"%Y-%u") as week,group_concat(count) as counts from jjb_user_count group by DATE_FORMAT(date,"%Y-%u");');
foreach ($week_counts as &$value){
$explodes = explode(",", $value['counts']);
$value['counts'] = array_sum($explodes);
}