with t as(
    select month(fdate) as 'month',
           row_number() over(partition by month(fdate) order by count(*) desc,song_id) as ranking,
           song_name,
           count(*) as play_pv
    from play_log
    join song_info using(song_id)
    join user_info using(user_id)
    where year(fdate)='2022' 
    and age>=18 and age<=25 
    and singer_name='周杰伦'
    group by month(fdate),song_name,song_id
)

select *
from t where ranking<=3

区间取值,不可以用18<=age<=25,自测通过,提交不通过。

可以用age between 18 and 25,或者age>=18 and age<=25.