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

每个月Top3的周杰伦歌曲

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

-- 逻辑拆解:筛选条件-18-25岁,2022年,播放次数top3,周杰伦;分组对象:每个月
-- 思路就是首先将所有符合条件的内容筛选出来(按照逻辑拆解去做),并且求出播放次数+按照播放次数去排名,最后取前三名
WITH table_1 AS(
    SELECT 
        MONTH(t2.fdate) AS month,
        COUNT(t2.song_id) play_pv,
        t3.song_name,
        ROW_NUMBER() OVER(partition by MONTH(t2.fdate) order by COUNT(t2.song_id) DESC) ranking
    FROM user_info t1
    INNER JOIN play_log t2
    ON t1.user_id = t2.user_id
    INNER JOIN song_info t3
    ON t2.song_id = t3.song_id
    WHERE t1.age BETWEEN '18' AND '25'
    AND t2.fdate BETWEEN '2022-01-01' AND '2022-12-31'
    AND t3.singer_name = '周杰伦'
    GROUP BY MONTH(t2.fdate),t3.song_name
)
SELECT 
    t1.month,
    t1.ranking,
    t1.song_name,
    t1.play_pv
FROM table_1 t1
WHERE t1.ranking <= 3

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-22 13:08
Data_Seven:真不知道这些企业哪来的成就感
点赞 评论 收藏
分享
04-08 16:35
门头沟学院 Java
站队站对牛:实在是恶心的公司
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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