题解 | 被重复观看次数最多的3个视频
被重复观看次数最多的3个视频
https://www.nowcoder.com/practice/b75fa2412659422c96369976ee1f9504
SELECT * FROM ( SELECT S1.cid,SUM(cnt) AS pv,ROW_number() OVER (ORDER BY SUM(cnt) DESC,release_date DESC) AS rk FROM (SELECT T1.release_date,T2.uid,T2.cid,COUNT(T2.cid) AS cnt FROM course_info_tb T1 LEFT JOIN play_record_tb T2 ON T1.cid = T2.cid GROUP BY T1.release_date,T2.uid,T2.cid HAVING cnt > 1) S1 GROUP BY S1.cid,release_date) S2 WHERE rk < 4;
容易错的知识点:
only_full_group_by
规则要求:在包含聚合函数(如SUM
)的查询中,SELECT
列表中的非聚合列必须:出现在 GROUP BY 子句中,或被聚合函数包裹(如 MAX(cid))
改错的点:
方法一:release_date 用MAX()转化,包装成聚合函数
方法二:将release_date作为GROUP BY 的参数