题解 | #查询每天刷题通过数最多的前二名用户id和刷题数#

查询每天刷题通过数最多的前二名用户id和刷题数

https://www.nowcoder.com/practice/b9cc0d5047f94bc0a661c5a0a230b9cd

  1. 这个思路类似于 两张questions_pass_record表 分别是t1和t2。
  2. 首先从t1表里取出一个t1.pass_count,使用count(*)统计了t2表中同一日期内有几个比t1.pass_count大。
  3. 如果count()=0说明当前取出的pass_count是当天最大的,可以输出。如果count()=1说明当前取出的pass_count是当天第二大的,可以输出。再如果count()=2说明是当天第三大的,此时不满足count()<2,因此不输出。
  4. 综上可知,该题解输出了当天前二大的pass_count
SELECT
    `date`,
    user_id,
    pass_count
FROM
    questions_pass_record qpd1
WHERE
    (
        SELECT
            COUNT(*)
        FROM
            questions_pass_record qpd2
        WHERE
            qpd1.pass_count < qpd2.pass_count
            AND qpd1.date = qpd2.date
    ) < 2
ORDER BY
    `date`,user_id desc

全部评论

相关推荐

迷茫的大四🐶:现在是幻想时间查看图片
双非本科的出路是什么?
点赞 评论 收藏
分享
哇哇的菜鸡oc:他这不叫校招offer,而是实习offer
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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