SELECT p.player_id,
       username,
       MAX(level) AS current_level,
       CASE WHEN MAX(level)>=30 THEN '高阶玩家' ELSE '新秀玩家' END AS player_category,
       ROUND(SUM(cost),2) AS total_april_spending
FROM players p 
LEFT JOIN transactions t ON p.player_id=t.player_id
WHERE substr(creation_date,1,7)='2025-03' AND substr(purchase_time,1,7)='2025-04'
GROUP BY p.player_id,username
ORDER BY player_category DESC,total_april_spending DESC,p.player_id ASC