ソースコード
WITH CALCULATED_SCORES AS (
    SELECT
        ENTRIES.USER_ID,
        SUM(CASE 
            WHEN SUBMISSIONS.STATUS = 'AC' THEN 100 -- ACの場合の得点
            ELSE 0 -- それ以外の場合の得点
        END) AS TOTAL_SCORE,
        SUM(CASE 
            WHEN SUBMISSIONS.STATUS = 'AC' THEN 
                strftime('%s', SUBMISSIONS.SUBMITTED_AT) - strftime('%s', ENTRIES.STARTED_AT) 
                + 300 * (
                    SELECT COUNT(*)
                    FROM SUBMISSIONS AS S
                    WHERE 
                        S.USER_ID = ENTRIES.USER_ID
                        AND S.PROBLEM_ID = SUBMISSIONS.PROBLEM_ID
                        AND S.STATUS != 'AC'
                        AND strftime('%s', S.SUBMITTED_AT) < strftime('%s', SUBMISSIONS.SUBMITTED_AT)
                ) -- ACの場合の解答時間にペナルティを加算
            ELSE 0 -- それ以外の場合の解答時間
        END) AS EX_TIME,
        SUM(CASE 
            WHEN SUBMISSIONS.STATUS != 'AC' AND strftime('%s', SUBMISSIONS.SUBMITTED_AT) < (
                SELECT MAX(strftime('%s', S.SUBMITTED_AT))
                FROM SUBMISSIONS AS S
                WHERE 
                    S.USER_ID = SUBMISSIONS.USER_ID
                    AND S.PROBLEM_ID = SUBMISSIONS.PROBLEM_ID
                    AND S.STATUS = 'AC'
                    AND strftime('%s', S.SUBMITTED_AT) < strftime('%s', SUBMISSIONS.SUBMITTED_AT)
            ) THEN 1 -- ACではなく、他のACよりも前に提出された場合の誤答数
            ELSE 0 -- それ以外の場合の誤答数
        END) AS WRONG_ANS
    FROM
        ENTRIES
    LEFT JOIN
        SUBMISSIONS
    ON
        ENTRIES.ID = SUBMISSIONS.ENTRY_ID
    WHERE
        ENTRIES.CONTEST_ID = 2
    GROUP BY
        ENTRIES.USER_ID
)

SELECT 
    RANK() OVER (ORDER BY TOTAL_SCORE DESC, EX_TIME ASC, USER_ID ASC) AS RANK,
    USER_ID,
    TOTAL_SCORE AS POINT,
    EX_TIME,
    WRONG_ANS
FROM
    CALCULATED_SCORES
WHERE
    TOTAL_SCORE > 0 -- 合計点数が0点でないことを確認
ORDER BY
    RANK ASC, WRONG_ANS ASC, USER_ID ASC;
提出情報
提出日時2023/07/20 17:04:55
コンテスト第3回 SQLコンテスト
問題順位計算
受験者megumilk-17
状態 (詳細)RE
(Runtime Error: 実行時エラー)
メモリ使用量78 MB
メッセージ
SQLITE_ERROR: no such column: ENTRIES.ID
テストケース(通過数/総数)
0/2
状態
メモリ使用量
データパターン1
RE
77 MB
データパターン2
RE
78 MB