Skip to content
This repository was archived by the owner on Jan 23, 2025. It is now read-only.

Commit 8737491

Browse files
authored
added task check
1 parent 3e136ac commit 8737491

File tree

1 file changed

+70
-32
lines changed

1 file changed

+70
-32
lines changed

queries/get_past_challenges_count

Lines changed: 70 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,76 @@
1-
SELECT COUNT(*) AS total
1+
SELECT is_studio
2+
, challenge_type
3+
, challenge_name
4+
, challenge_id
5+
, (SELECT value FROM project_info WHERE project_id = challenge_id AND project_info_type_id = 4) AS forum_id
6+
, num_submissions
7+
, num_registrants
8+
, number_of_checkpoints_prizes
9+
, first_place_prize
10+
, total_prize
11+
, checkpoint_total_prizes
12+
, registration_start_date
13+
, registration_end_date
14+
, checkpoint_submission_end_date
15+
, submission_end_date
16+
, status
17+
, digital_run_points
18+
, nvl((SELECT MAX(event_id) FROM contest_project_xref x, contest c WHERE project_id = challenge_id AND c.contest_id = x.contest_id), 0) AS event_id
19+
, (SELECT event_short_desc FROM event e WHERE e.event_id = nvl((SELECT MAX(event_id) FROM contest_project_xref x, contest c WHERE project_id = challenge_id AND c.contest_id = x.contest_id), 0)) AS event_name
20+
, technology_list(value_for_technology) AS technologies
21+
, platform_list(id_for_platform) AS platforms
22+
, registration_open
23+
, NVL((SELECT CAST('t' AS boolean) FROM contest_eligibility WHERE contest_id = challenge_id), CAST('f' AS boolean)) AS is_private
24+
, (SELECT value FROM project_info pi53 WHERE project_id = challenge_id AND project_info_type_id = 53) AS submissions_viewable
25+
FROM (
26+
SELECT
27+
SKIP @first_row_index@
28+
FIRST @page_size@
29+
CASE WHEN (p.project_studio_spec_id IS NOT NULL) THEN 1 ELSE 0 END AS is_studio
30+
, pcl.description AS challenge_type
31+
, pn.value AS challenge_name
32+
, p.project_id AS challenge_id
33+
, (SELECT COUNT(*) FROM submission s1 INNER JOIN upload u1 ON s1.upload_id = u1.upload_id
34+
WHERE u1.project_id = p.project_id
35+
AND s1.submission_type_id = 1
36+
AND s1.submission_status_id <> 5) AS num_submissions
37+
, (SELECT COUNT(*) FROM resource r WHERE r.project_id = p.project_id AND r.resource_role_id = 1) AS num_registrants
38+
, NVL((SELECT SUM(pr.number_of_submissions) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 14), 0) AS number_of_checkpoints_prizes
39+
, (SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 1) AS first_place_prize
40+
, (SELECT SUM(prize_amount) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15) AS total_prize
41+
, (SELECT SUM(prize_amount * number_of_submissions) FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 14) AS checkpoint_total_prizes
42+
, NVL(pp1.actual_start_time, pp1.scheduled_start_time) AS registration_start_date
43+
, NVL(pp1.actual_end_time, pp1.scheduled_end_time) AS registration_end_date
44+
, NVL(pp15.actual_end_time, pp15.scheduled_end_time) AS checkpoint_submission_end_date
45+
, NVL(pp2.actual_end_time, pp2.scheduled_end_time) AS submission_end_date
46+
, pstatus.name AS status
47+
, CASE WHEN pidr.value = 'On' THEN
48+
NVL((SELECT value::decimal FROM project_info pi_dr WHERE pi_dr.project_info_type_id = 30 AND pi_dr.project_id = p.project_id), (SELECT round(NVL(pi16.value::decimal, 0)) FROM project_info pi16 WHERE pi16.project_info_type_id = 16 AND pi16.project_id = p.project_id))
49+
ELSE NULL END AS digital_run_points
50+
, pi1.value AS value_for_technology
51+
, p.project_id AS id_for_platform
52+
, CASE WHEN (pp1.phase_status_id = 2) THEN 'Yes' ELSE 'No' END AS registration_open
253
FROM project p
3-
, project_phase pp1 --registration phase
4-
, project_phase pp2 --submission phase
5-
, project_info pn
6-
, project_info pi1
7-
, project_category_lu pcl
8-
, OUTER project_info pi82
9-
WHERE p.project_id = pn.project_id
10-
AND pn.project_info_type_id = 6
11-
AND pp1.project_id = p.project_id
12-
AND pp1.phase_type_id = 1 --registration phase
13-
AND pp2.project_id = p.project_id
14-
AND pp2.phase_type_id = 2 --submission phase
15-
AND p.project_category_id = pcl.project_category_id
16-
AND p.project_status_id IN (4, 5, 6, 7, 8, 9, 10, 11)
17-
AND pcl.project_type_id IN (@track@)
18-
AND pp1.phase_status_id in (2,3)
19-
AND pi1.project_id = p.project_id
20-
AND pi1.project_info_type_id = 1
54+
INNER JOIN project_status_lu pstatus ON pstatus.project_status_id = p.project_status_id
55+
INNER JOIN project_category_lu pcl ON pcl.project_category_id = p.project_category_id
56+
INNER JOIN project_phase pp1 ON pp1.project_id = p.project_id AND pp1.phase_type_id = 1
57+
INNER JOIN project_phase pp2 ON pp2.project_id = p.project_id AND pp2.phase_type_id = 2
58+
INNER JOIN project_info pn ON pn.project_id = p.project_id AND pn.project_info_type_id = 6
59+
INNER JOIN project_info pi1 ON pi1.project_id = p.project_id AND pi1.project_info_type_id = 1
60+
LEFT JOIN project_phase pp15 ON pp15.project_id = p.project_id AND pp15.phase_type_id = 15
61+
LEFT JOIN project_info pidr ON pidr.project_id = p.project_id AND pidr.project_info_type_id = 26
62+
WHERE
63+
p.project_status_id IN (4, 5, 6, 7, 8, 9, 10, 11)
64+
AND pcl.project_category_id NOT IN (27, 37) AND pcl.project_type_id IN (@track@)
2165
and NVL(pp2.actual_end_time, pp2.scheduled_end_time) > '2012-01-01 00:00:00'
22-
AND pcl.project_category_id NOT IN (27, 37) --exclude when spec review was a 'contest.' Also exclude MM, which is in there as a 'software' contest.
23-
-- start of parameters
24-
2566
AND NVL(pp2.actual_end_time, pp2.scheduled_end_time) BETWEEN TO_DATE('@submission_end_from@ 00:00:00', '%Y-%m-%d %H:%M:%S') AND TO_DATE('@submission_end_to@ 23:59:59', '%Y-%m-%d %H:%M:%S')
26-
27-
AND LOWER(pn.value) LIKE ('@challenge_name@')
67+
-- Filter out the challenge that user is not belong to.
68+
AND pp1.phase_status_id in (2,3)
69+
AND LOWER(pn.value) LIKE('@challenge_name@')
70+
-- start of parameters
2871
AND NVL((SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 1), 0) >= @prize_lower_bound@
2972
AND NVL((SELECT pr.prize_amount FROM prize pr WHERE pr.project_id = p.project_id AND pr.prize_type_id = 15 AND pr.place = 1), 0) <= @prize_upper_bound@
3073
AND p.tc_direct_project_id = DECODE(@project_id@, 0, p.tc_direct_project_id, @project_id@)
31-
-- Filter out the challenge that user is not belong to.
32-
AND (not exists (select contest_id from contest_eligibility where contest_id = p.project_id)
33-
or exists(select contest_id from contest_eligibility ce, group_contest_eligibility gce, user_group_xref x
34-
where x.login_id = @user_id@ AND x.group_id = gce.group_id AND gce.contest_eligibility_id = ce.contest_eligibility_id
35-
AND ce.contest_id = p.project_id))
36-
AND NOT ( NVL(pi82.value,0) = 1
37-
AND (select count(*) from resource r where r.project_id = p.project_id and resource_role_id = 1 ) > 0
38-
)
74+
AND not exists (select 1 from resource r, project_info pi82 where r.project_id = p.project_id and r.resource_role_id = 1 and p.project_id = pi82.project_id and project_info_type_id = 82) -- exclude assigned tasks
75+
ORDER BY @sort_column@ @sort_order@
76+
)

0 commit comments

Comments
 (0)