题解 | #查询每天刷题通过数最多的前二名用户id和刷题数#
查询每天刷题通过数最多的前二名用户id和刷题数
https://www.nowcoder.com/practice/b9cc0d5047f94bc0a661c5a0a230b9cd
SELECT t1.date, t1.user_id, t1.pass_count FROM (SELECT date, user_id, pass_count, RANK() OVER(PARTITION BY date ORDER BY pass_count desc) AS rank_ FROM questions_pass_record) t1 WHERE rank_ <= 2 ORDER BY date ASC
小白做错几次才意识到对于每时间段前几不能直接用limit,要先用RANK() OVER(PARTITION BY date ORDER BY pass_count desc)窗口函数算出排名再用WHERE <= 2条件求得
查看14道真题和解析