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

每个月Top3的周杰伦歌曲

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

# 首先找到2022年18-25岁用户听周杰伦的歌的数据
with t1 as (
    select month(fdate) as month, song_id
    from play_log
    where user_id in (select user_id from user_info where age between 18 and 25)
    and year(fdate) = '2022'
    and song_id in (select song_id from song_info where singer_name = '周杰伦')
),
t2 as (
    # 计算每一个月的歌曲被听次数
    select month, t1.song_id, a.song_name, count(*) as play_pv
    from t1
    left join song_info as a
    on a.song_id = t1.song_id
    group by month, t1.song_id, a.song_name
),
t3 as (
    select month, row_number() over(partition by month order by play_pv desc, song_id) as ranking,song_name, play_pv
    from t2
)
select * 
from t3
where ranking <= 3;



全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务