select month,rn as ranking, song_name, cnt as play_pv
from
(
select month(fdate) as month, play.song_id, count(1) as cnt, song_name,
row_number() over (partition by month(fdate) order by count(1) desc, play.song_id) as rn
from play_log play
join user_info user on play.user_id=user.user_id
join song_info song on play.song_id=song.song_id
where age>=18 and age<=25 and year(fdate)=2022 and singer_name='周杰伦'
group by month(fdate), play.song_id, song_name
) temp
where rn<=3

京公网安备 11010502036488号