|
1 | | -WITH design_first_submissions AS ( |
| 1 | +WITH development_submissions_ranked AS ( |
2 | 2 | SELECT |
3 | | - s."memberId"::text AS member_id, |
4 | | - MIN(s."submittedDate") AS first_submission_date |
| 3 | + s."memberId"::bigint AS member_id, |
| 4 | + s."challengeId" AS challenge_id, |
| 5 | + s."submittedDate" AS submitted_date, |
| 6 | + ROW_NUMBER() OVER ( |
| 7 | + PARTITION BY s."memberId" |
| 8 | + ORDER BY s."submittedDate" ASC, s."challengeId" ASC |
| 9 | + ) AS submission_rank |
5 | 10 | FROM reviews.submission s |
6 | 11 | JOIN challenges."Challenge" c |
7 | 12 | ON c.id = s."challengeId" |
8 | 13 | JOIN challenges."ChallengeTrack" tr |
9 | 14 | ON tr.id = c."trackId" |
10 | 15 | WHERE tr.abbreviation = 'DS' |
11 | | - GROUP BY s."memberId" |
| 16 | +), |
| 17 | +development_first_submissions AS ( |
| 18 | + SELECT |
| 19 | + member_id, |
| 20 | + challenge_id, |
| 21 | + submitted_date |
| 22 | + FROM development_submissions_ranked |
| 23 | + WHERE submission_rank = 1 |
12 | 24 | ) |
13 | 25 | SELECT |
14 | | - m.handle AS handle, |
15 | | - d.first_submission_date::date AS first_submission_date |
16 | | -FROM design_first_submissions d |
| 26 | + m.handle AS "user.handle", |
| 27 | + c.name AS "challenge.challenge_name", |
| 28 | + dfs.submitted_date::date AS "newest_submitters.submit_date_date", |
| 29 | + max_rating.rating AS "submitter_profile.max_rating" |
| 30 | +FROM development_first_submissions dfs |
17 | 31 | JOIN members.member m |
18 | | - ON m."userId"::text = d.member_id |
19 | | -WHERE d.first_submission_date >= NOW() - INTERVAL '3 months' |
20 | | -ORDER BY d.first_submission_date DESC, handle ASC; |
| 32 | + ON m."userId" = dfs.member_id |
| 33 | +JOIN challenges."Challenge" c |
| 34 | + ON c.id = dfs.challenge_id |
| 35 | +LEFT JOIN LATERAL ( |
| 36 | + SELECT |
| 37 | + mmr.rating |
| 38 | + FROM members."memberMaxRating" mmr |
| 39 | + WHERE mmr."userId" = dfs.member_id |
| 40 | + ORDER BY mmr.rating DESC NULLS LAST |
| 41 | + LIMIT 1 |
| 42 | +) max_rating |
| 43 | + ON TRUE |
| 44 | +WHERE dfs.submitted_date >= NOW() - INTERVAL '3 months' |
| 45 | +ORDER BY "newest_submitters.submit_date_date" DESC, "user.handle" ASC; |
0 commit comments