SELECT DATE_FORMAT(submit_time,'%Y%m') AS submit_month, COUNT() AS month_q_cnt, ROUND( COUNT() / avg(DAY(LAST_DAY(submit_time)) ),3 ) AS avg_day_q_cnt FROM practice_record WHERE score IS NOT NULL AND YEAR(submit_time)='2021' GROUP BY DATE_FORMAT(submit_time,'%Y%m')

UNION ALL

SELECT '2021汇总' AS submit_month, COUNT() AS month_q_cnt, ROUND(COUNT() / 31,3) avg_day_q_cnt FROM practice_record WHERE score IS NOT NULL AND YEAR(submit_time)='2021' ORDER BY submit_month ;

#简单来说,每个月都有好多个submit_time,随之对应的就是last_day返回好多个31或者30,count(submit_time)是一个数, #假定为6,那么6/(30,30,30,30,30,30)必然报错,所以我们要去重,用max,min,都行或者求平均数 主要还是分组的问题。