Я новичок в SQL, и я делал несколько упражнений в Интернете, чтобы улучшить свои навыки запросов.
Я пытался решить эту проблему: https://www.hackerrank.com/challenges/contest-leaderboard/problem
Мне удалось решить эту проблему с помощью приведенного ниже кода, но мне было интересно, есть ли способ упростить / сделать его более эффективным?
SELECT
id,
name,
total_score
FROM(
SELECT
id,
name,
SUM(sscore) as total_score
FROM(
SELECT
id,
name,
challenge_id,
MAX(score) as sscore
FROM(
SELECT
hacker_id as id,
name,
submission_id,
challenge_id,
score
FROM
Hackers
INNER JOIN
Submissions s USING(hacker_id)
ORDER BY
hacker_id,
challenge_id)a
GROUP BY id, name, challenge_id)b
GROUP BY id, name
ORDER BY total_score DESC, id ASC)c
WHERE total_score > 0;