题解 | 每个月Top3的周杰伦歌曲

每个月Top3的周杰伦歌曲

https://www.nowcoder.com/practice/4ab6d198ea8447fe9b6a1cad1f671503

SELECT
    month,
    ranking,
    song_name,
    play_pv
FROM
    (
        SELECT
            MONTH(p.fdate) AS month,
            s.song_name,
            COUNT(*) AS play_pv,
            ROW_NUMBER() OVER (
                PARTITION BY
                    MONTH(p.fdate)
                ORDER BY
                    COUNT(*) DESC,
                    s.song_id ASC
            ) AS ranking
            
        FROM
            play_log p
            JOIN song_info s ON s.song_id = p.song_id
            JOIN user_info u ON u.user_id = p.user_id
        WHERE
            u.age BETWEEN 18 AND 25
            AND YEAR(p.fdate) = 2022
            AND s.singer_name = "周杰伦"
        GROUP BY
            MONTH(p.fdate),
            s.song_name,
            p.song_id
    ) t
WHERE
    ranking <= 3
ORDER BY
    month,
    ranking

初学,轻喷

#SQL#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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