WITH ChallengeCounts AS (
SELECT hacker_id, COUNT(*) AS num_challenges
FROM Challenges
GROUP BY hacker_id
),
MaxChallenges AS (
SELECT MAX(num_challenges) AS max_challenges
FROM ChallengeCounts
)
SELECT h.hacker_id, h.name, cc.num_challenges
FROM Hackers h
JOIN ChallengeCounts cc ON h.hacker_id = cc.hacker_id
JOIN MaxChallenges mc ON cc.num_challenges = mc.max_challenges
ORDER BY cc.num_challenges DESC, h.hacker_id;