select player_id, username, level as current_level,
if(level >= 30, '高阶玩家', '新秀玩家') 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, current_level
order by player_category desc, total_april_spending desc, player_id asc