SELECT
    p.player_id,
    p.username,
    p.level AS current_level,
    CASE
        WHEN p.level >= 30 THEN '高阶玩家'
        ELSE '新秀玩家'
    END AS player_category,
    SUM(t.cost) AS total_april_spending
FROM transactions t
LEFT JOIN players p USING (player_id)
WHERE p.creation_date >= '2025-03-01'
  AND p.creation_date <  '2025-04-01'
  AND t.purchase_time >= '2025-04-01'
  AND t.purchase_time <  '2025-05-01'
GROUP BY 
    p.player_id,
    p.username,
    p.level
order by player_category DESC , total_april_spending DESC, player_id ASC;