Contest Leaderboard

  • + 0 comments
    WITH cte AS (
            SELECT
                h.hacker_id,
                h.name,
                MAX(s.score) as max_scr
            FROM
                hackers h
                INNER JOIN submissions s ON s.hacker_id = h.hacker_id
            WHERE
                s.score != 0
            GROUP BY
                h.hacker_id, h.name, s.challenge_id)
    
    SELECT
        hacker_id,
        name,
        SUM(max_scr)
    FROM
        cte
    GROUP BY
        hacker_id, name
    ORDER BY
        SUM(max_scr) DESC, hacker_id