Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions sql/reports/topcoder/recent-member-data.sql
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
WITH params AS (
SELECT COALESCE(NULLIF($1, '')::timestamptz, TIMESTAMPTZ '2024-01-01') AS start_date
),
registrants AS (
SELECT DISTINCT r."memberId" AS member_id
FROM resources."Resource" r
JOIN resources."ResourceRole" rr
ON rr.id = r."roleId"
JOIN params p
ON r."createdAt" >= p.start_date
registrant_roles AS (
SELECT rr.id
FROM resources."ResourceRole" rr
WHERE rr."nameLower" IN ('submitter', 'registrant')
),
latest_payment AS (
Expand All @@ -31,10 +27,16 @@ paid_members AS (
AND w.type = 'PAYMENT'
),
eligible_members AS (
SELECT DISTINCT r.member_id
FROM registrants r
JOIN paid_members p
ON p.member_id = r.member_id
SELECT pm.member_id
FROM paid_members pm
CROSS JOIN params p
WHERE EXISTS (
SELECT 1
FROM resources."Resource" r
WHERE r."memberId" = pm.member_id
AND r."createdAt" >= p.start_date
AND r."roleId" IN (SELECT id FROM registrant_roles)
)
),
role_counts AS (
SELECT
Expand Down Expand Up @@ -183,11 +185,9 @@ registration_counts AS (
r."memberId" AS member_id,
COUNT(DISTINCT r."challengeId") AS registration_count
FROM resources."Resource" r
JOIN resources."ResourceRole" rr
ON rr.id = r."roleId"
JOIN eligible_members em
ON em.member_id = r."memberId"
WHERE rr."nameLower" IN ('submitter', 'registrant')
WHERE r."roleId" IN (SELECT id FROM registrant_roles)
GROUP BY r."memberId"
),
submissions_over_75 AS (
Expand Down Expand Up @@ -245,7 +245,7 @@ FROM eligible_members em
JOIN members.member m
ON m."userId"::text = em.member_id
LEFT JOIN identity."user" u
ON u.user_id::text = em.member_id
ON u.user_id = m."userId"::numeric(10, 0)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[❗❗ correctness]
The change from u.user_id::text = em.member_id to u.user_id = m."userId"::numeric(10, 0) could potentially introduce issues if m."userId" contains non-numeric characters or if the conversion fails. Ensure that m."userId" is always a valid numeric value before this conversion.

LEFT JOIN member_roles mr
ON mr.member_id = em.member_id
LEFT JOIN skills_agg sk
Expand Down
Loading