select 
player_id,
username,
max(level) as current_level,
max(case when level <30 then '新秀玩家' else '高阶玩家' end) as player_category,
round(sum(cost),2) as total_april_spending
from players 
join transactions
using(player_id)
where date_format(creation_date,'%Y-%m')='2025-03' 
and date_format(purchase_time,'%Y-%m')='2025-04'
group by player_id,username
order by player_category desc,total_april_spending desc,player_id