题解 | #筛选限定昵称成就值活跃日期的用户#

筛选限定昵称成就值活跃日期的用户

http://www.nowcoder.com/practice/2ed07ff8f67a474d90523b88402e401b

第一次提交代码的时候直接用JOIN连接exam_record和practice_record,导致有一条用例没通过,后发现因为该用例中用户1005没有题目作答记录,故没有筛选进连接后的表中,改为left join后成功通过。

SELECT DISTINCT uid, nick_name, achievement
FROM (
    SELECT uid,
        MAX(DATE_FORMAT(start_time, '%Y%m')) OVER(PARTITION BY uid) AS recent_act_exam,
        MAX(DATE_FORMAT(p_r.submit_time, '%Y%m')) OVER(PARTITION BY uid) AS recent_act_practice
    FROM exam_record e_r LEFT JOIN
        practice_record p_r USING(uid)
)recent_act_table
    JOIN user_info USING(uid)
WHERE nick_name LIKE '牛客%号' 
    AND achievement BETWEEN 1200 AND 2500
    AND (recent_act_exam = '202109'
        OR recent_act_practice = '202109')
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

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