题解 | #月总刷题数和日均刷题数#
月总刷题数和日均刷题数
https://www.nowcoder.com/practice/f6b4770f453d4163acc419e3d19e6746
SELECT COALESCE(t1.submit_month1,'2021汇总') submit_month, ROUND(COUNT(1),3) month_q_cnt,
ROUND(COUNT(1)/MAX(days),3) avg_day_q_cnt
FROM (
SELECT *, DATE_FORMAT(submit_time, '%Y%m') submit_month1, DAY(LAST_DAY(submit_time)) days
FROM practice_record
) t1
WHERE YEAR(submit_time) = 2021
GROUP BY t1.submit_month1
WITH ROLLUP
学习到了一个新知识coalesce(),用来返回第一个非null的值,由于SELECT是一行行的取值,所以在取完最后一行之后可以执行coalesce()第二个参数的值,因此可以与WITH ROLLUP搭配
查看14道真题和解析