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

每个月Top3的周杰伦歌曲

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

-- user_id 18-25岁
-- 2022年每个月
-- 周杰伦的歌曲

WITH T AS (SELECT P.user_id, MONTH(fdate) AS month, P.song_id , song_name
FROM play_log P 
LEFT JOIN user_info U 
ON P.user_id = U.user_id 

LEFT JOIN song_info S 
ON P.song_id = S.song_id

WHERE U.age >= 18 AND U.age <= 25
AND YEAR(fdate) = 2022 
AND S.singer_name = "周杰伦"),

T2 AS (SELECT month, song_name, song_id,
COUNT(*)
AS play_pv
FROM T
GROUP BY month, song_name, song_id),

T3 AS (SELECT month, song_name, play_pv, 
ROW_NUMBER() OVER (PARTITION BY month ORDER BY play_pv DESC, song_id)
AS RN
FROM T2)

SELECT month, RN AS ranking, song_name, play_pv FROM T3 WHERE RN <= 3



全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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