11WITH challenge_context AS (
22 SELECT
33 c .id ,
4- (ct .name = ' Marathon Match' ) AS is_marathon_match
4+ (ct .name = ' Marathon Match' ) AS is_marathon_match,
5+ (c .status = ' COMPLETED' ) AS is_completed
56 FROM challenges." Challenge" AS c
67 JOIN challenges." ChallengeType" AS ct
78 ON ct .id = c." typeId"
@@ -17,11 +18,38 @@ submission_metrics AS (
1718 s." finalScore" ::double precision ,
1819 s." initialScore" ::double precision
1920 ) AS standard_score,
20- provisional_review .provisional_score ,
21- COALESCE(
22- final_review." aggregateScore" ,
23- s." finalScore" ::double precision
24- ) AS final_score_raw,
21+ CASE
22+ WHEN s .status IN (
23+ ' FAILED_SCREENING' ,
24+ ' FAILED_REVIEW' ,
25+ ' FAILED_CHECKPOINT_SCREENING' ,
26+ ' FAILED_CHECKPOINT_REVIEW' ,
27+ ' DELETED'
28+ ) THEN NULL
29+ WHEN provisional_review .has_provisional_review THEN CASE
30+ WHEN provisional_review .provisional_score >= 0 THEN provisional_review .provisional_score
31+ ELSE NULL
32+ END
33+ WHEN s." initialScore" ::double precision >= 0 THEN s." initialScore" ::double precision
34+ ELSE NULL
35+ END AS provisional_score,
36+ CASE
37+ WHEN NOT cc .is_completed THEN NULL
38+ WHEN s .status IN (
39+ ' FAILED_SCREENING' ,
40+ ' FAILED_REVIEW' ,
41+ ' FAILED_CHECKPOINT_SCREENING' ,
42+ ' FAILED_CHECKPOINT_REVIEW' ,
43+ ' DELETED'
44+ ) THEN NULL
45+ WHEN final_review .has_final_review THEN CASE
46+ WHEN final_review." aggregateScore" >= 0 THEN final_review." aggregateScore"
47+ ELSE NULL
48+ END
49+ WHEN s." finalScore" ::double precision >= 0 THEN s." finalScore" ::double precision
50+ ELSE NULL
51+ END AS final_score_raw,
52+ cc .is_completed ,
2553 (
2654 passing_review .is_passing IS TRUE
2755 OR COALESCE(s." finalScore" ::double precision , 0 ) > 98
@@ -31,7 +59,9 @@ submission_metrics AS (
3159 ON s." challengeId" = cc .id
3260 AND s." memberId" IS NOT NULL
3361 LEFT JOIN LATERAL (
34- SELECT rs." aggregateScore"
62+ SELECT
63+ TRUE AS has_final_review,
64+ rs." aggregateScore"
3565 FROM reviews." reviewSummation" AS rs
3666 WHERE rs." submissionId" = s .id
3767 AND COALESCE(rs." isFinal" , TRUE) = TRUE
@@ -40,7 +70,9 @@ submission_metrics AS (
4070 LIMIT 1
4171 ) AS final_review ON TRUE
4272 LEFT JOIN LATERAL (
43- SELECT rs." aggregateScore" AS provisional_score
73+ SELECT
74+ TRUE AS has_provisional_review,
75+ rs." aggregateScore" AS provisional_score
4476 FROM reviews." reviewSummation" AS rs
4577 WHERE rs." submissionId" = s .id
4678 AND rs." isProvisional" IS TRUE
@@ -90,9 +122,12 @@ mm_latest_submission_scores AS (
90122 vsm." memberId" ,
91123 vsm .provisional_score AS provisional_score_raw,
92124 vsm .final_score_raw ,
93- COALESCE( vsm .final_score_raw , vsm . provisional_score ) AS effective_score_raw ,
125+ vsm .is_completed ,
94126 vsm .submission_timestamp
95127 FROM valid_submission_metrics AS vsm
128+ WHERE
129+ vsm .provisional_score IS NOT NULL
130+ OR vsm .final_score_raw IS NOT NULL
96131 ORDER BY
97132 vsm." memberId" ,
98133 vsm .submission_timestamp DESC NULLS LAST,
@@ -110,13 +145,13 @@ mm_ranked_scores AS (
110145 ELSE ROUND(mlss .final_score_raw ::numeric , 2 )
111146 END AS " finalScore" ,
112147 CASE
113- WHEN mlss .effective_score_raw IS NULL THEN NULL
114- ELSE ROW_NUMBER() OVER (
148+ WHEN mlss .is_completed AND mlss .final_score_raw IS NOT NULL THEN ROW_NUMBER() OVER (
115149 ORDER BY
116- mlss .effective_score_raw DESC NULLS LAST,
150+ mlss .final_score_raw DESC NULLS LAST,
117151 mlss .submission_timestamp ASC NULLS LAST,
118152 mlss." memberId" ASC
119153 )
154+ ELSE NULL
120155 END AS " finalRank"
121156 FROM mm_latest_submission_scores AS mlss
122157)
@@ -194,6 +229,10 @@ ORDER BY
194229 WHEN vsm .is_marathon_match THEN mrs." finalRank"
195230 ELSE NULL
196231 END ASC NULLS LAST,
232+ CASE
233+ WHEN vsm .is_marathon_match AND mrs." finalRank" IS NULL THEN mrs." provisionalScore"
234+ ELSE NULL
235+ END DESC NULLS LAST,
197236 CASE
198237 WHEN vsm .is_marathon_match THEN NULL
199238 ELSE sms." submissionScore"
0 commit comments