题解 | 最受欢迎的top3课程

最受欢迎的top3课程

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

SELECT a.cid,a.play_cnt pv,a.time_len
FROM(
    SELECT
        t1.cid,
        COUNT(*) play_cnt,
        SUM(timestampdiff(minute,t2.start_time,t2.end_time)) time_len,
        DENSE_RANK() OVER(order by COUNT(*) DESC,SUM(timestampdiff(minute,t2.start_time,t2.end_time)) DESC) ranking
    FROM course_info_tb t1
    INNER JOIN play_record_tb t2
    ON t1.cid = t2.cid
    AND t2.start_time IS NOT NULL
    AND t2.end_time IS NOT NULL
    AND timestampdiff(day,t1.release_date,date_format(t2.start_time,'%Y-%m-%d')) <= 7
    GROUP BY t1.cid
    HAVING AVG(t2.score) >= 3
) a
WHERE a.ranking <= 3


全部评论

相关推荐

SadnessAlex:跟三十五岁原则一样,人太多给这些***惯坏了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务