题解 | #统计作答次数#

月总刷题数和日均刷题数

http://www.nowcoder.com/practice/f6b4770f453d4163acc419e3d19e6746

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,都行或者求平均数 主要还是分组的问题。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-20 14:01
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务