SELECT ANY_VALUE(COALESCE(DATE_FORMAT(submit_time, '%Y%m'), '2021汇总')) AS submit_month, COUNT(submit_time) AS month_q_cnt, ROUND((COUNT(*)/MAX(day(LAST_DAY(submit_time)))), 3) FROM practice_record WHERE YEAR(submit_time)='2021' GROUP BY DATE_FORMAT(submit_time, '%Y%m') WITH ROLLUP; ANY_VALUE没有实际意义,是为了规避full_group_by约束 计算当月日期前面加MAX有两个意义,其一是为了规避full_group_by约束,二是因为题目要求最后2021汇总要除31,所以一堆30和31中用MAX可以在最后一行把31选出来,且因为分组中全都是一样的30或31所以没有影响。
16

相关推荐

牛客60022193...:大厂都招前端,他们觉得AI能替代前端,可能他们公司吊打btaj吧
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务