Skip to content

Commit 5c9844a

Browse files
committed
task 44
1 parent aac0bd0 commit 5c9844a

File tree

4 files changed

+108
-2
lines changed

4 files changed

+108
-2
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
41. Станция наблюдения за погодой 19 - [Weather Observation Station 19](./tasks/41.md)
6868
42. Станция наблюдения за погодой 20 - [Weather Observation Station 20](./tasks/42.md)
6969
43. Таблица лидеров конкурса - [Contest Leaderboard](./tasks/43.md)
70+
44. Интервью - [Interviews](./tasks/44.md)
7071

7172

7273
## В процессе... , будет дополнено)

tasks/44.md

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,94 @@
33
<img src="./art/44.png" alt="solution" >
44

55
#### eng:
6+
Samantha interviews many candidates from different colleges using coding challenges and contests. Write a query to
7+
print the contest_id, hacker_id, name, and the sums of total_submissions, total_accepted_submissions, total_views,
8+
and total_unique_views for each contest sorted by contest_id. Exclude the contest from the result if all four sums are .
69

10+
Note: A specific contest can be used to screen candidates at more than one college, but each college only holds
11+
screening contest.
712

813

914
#### рус:
15+
Саманта берет интервью у многих кандидатов из разных колледжей, используя задачи и конкурсы по программированию.
16+
Напишите запрос для вывода идентификатора конкурса, идентификатора хакера, имени и сумм total_submissions,
17+
total_accepted_submissions, total_views и total_unique_views для каждого конкурса, отсортированного по конкурсу_id.
18+
Исключить конкурс из результата, если все четыре суммы равны .
1019

20+
Примечание. Определенный конкурс может использоваться для отбора кандидатов более чем в одном колледже, но каждый
21+
колледж проводит только отборочный конкурс.
1122

1223

1324
#### код с коментариями:
1425
```sql
15-
26+
WITH TOTAL_SUBMISSION_STATS AS (
27+
SELECT CHALLENGE_ID,
28+
SUM(TOTAL_SUBMISSIONS) AS GRAND_TOTAL_SUBMISSIONS,
29+
SUM(TOTAL_ACCEPTED_SUBMISSIONS) AS GRAND_TOTAL_ACCEPTED_SUBMISSIONS
30+
FROM SUBMISSION_STATS
31+
GROUP BY CHALLENGE_ID
32+
), TOTAL_VIEW_STATS AS (
33+
SELECT CHALLENGE_ID,
34+
SUM(TOTAL_VIEWS) AS GRAND_TOTAL_VIEWS,
35+
SUM(TOTAL_UNIQUE_VIEWS) AS GRAND_TOTAL_UNIQUE_VIEWS
36+
FROM VIEW_STATS
37+
GROUP BY CHALLENGE_ID
38+
)
39+
SELECT C1.CONTEST_ID, HACKER_ID, NAME,
40+
SUM(GRAND_TOTAL_SUBMISSIONS),
41+
SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS),
42+
SUM(GRAND_TOTAL_VIEWS),
43+
SUM(GRAND_TOTAL_UNIQUE_VIEWS)
44+
FROM
45+
CONTESTS C1
46+
LEFT JOIN COLLEGES C2 ON C1.CONTEST_ID = C2.CONTEST_ID
47+
LEFT JOIN CHALLENGES C3 ON C2.COLLEGE_ID = C3.COLLEGE_ID
48+
LEFT JOIN TOTAL_VIEW_STATS V ON C3.CHALLENGE_ID = V.CHALLENGE_ID
49+
LEFT JOIN TOTAL_SUBMISSION_STATS S ON C3.CHALLENGE_ID = S.CHALLENGE_ID
50+
GROUP BY
51+
C1.CONTEST_ID, HACKER_ID, NAME
52+
HAVING
53+
SUM(GRAND_TOTAL_SUBMISSIONS) +
54+
SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS) +
55+
SUM(GRAND_TOTAL_VIEWS) +
56+
SUM(GRAND_TOTAL_UNIQUE_VIEWS) != 0
57+
ORDER BY C1.CONTEST_ID;
1658
```
1759

1860
#### код для hackerrank:
1961
```sql
20-
62+
WITH TOTAL_SUBMISSION_STATS AS (
63+
SELECT CHALLENGE_ID,
64+
SUM(TOTAL_SUBMISSIONS) AS GRAND_TOTAL_SUBMISSIONS,
65+
SUM(TOTAL_ACCEPTED_SUBMISSIONS) AS GRAND_TOTAL_ACCEPTED_SUBMISSIONS
66+
FROM SUBMISSION_STATS
67+
GROUP BY CHALLENGE_ID
68+
), TOTAL_VIEW_STATS AS (
69+
SELECT CHALLENGE_ID,
70+
SUM(TOTAL_VIEWS) AS GRAND_TOTAL_VIEWS,
71+
SUM(TOTAL_UNIQUE_VIEWS) AS GRAND_TOTAL_UNIQUE_VIEWS
72+
FROM VIEW_STATS
73+
GROUP BY CHALLENGE_ID
74+
)
75+
SELECT C1.CONTEST_ID, HACKER_ID, NAME,
76+
SUM(GRAND_TOTAL_SUBMISSIONS),
77+
SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS),
78+
SUM(GRAND_TOTAL_VIEWS),
79+
SUM(GRAND_TOTAL_UNIQUE_VIEWS)
80+
FROM
81+
CONTESTS C1
82+
LEFT JOIN COLLEGES C2 ON C1.CONTEST_ID = C2.CONTEST_ID
83+
LEFT JOIN CHALLENGES C3 ON C2.COLLEGE_ID = C3.COLLEGE_ID
84+
LEFT JOIN TOTAL_VIEW_STATS V ON C3.CHALLENGE_ID = V.CHALLENGE_ID
85+
LEFT JOIN TOTAL_SUBMISSION_STATS S ON C3.CHALLENGE_ID = S.CHALLENGE_ID
86+
GROUP BY
87+
C1.CONTEST_ID, HACKER_ID, NAME
88+
HAVING
89+
SUM(GRAND_TOTAL_SUBMISSIONS) +
90+
SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS) +
91+
SUM(GRAND_TOTAL_VIEWS) +
92+
SUM(GRAND_TOTAL_UNIQUE_VIEWS) != 0
93+
ORDER BY C1.CONTEST_ID;
2194
```
2295

2396

tasks/44.sql

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
WITH TOTAL_SUBMISSION_STATS AS (
2+
SELECT CHALLENGE_ID,
3+
SUM(TOTAL_SUBMISSIONS) AS GRAND_TOTAL_SUBMISSIONS,
4+
SUM(TOTAL_ACCEPTED_SUBMISSIONS) AS GRAND_TOTAL_ACCEPTED_SUBMISSIONS
5+
FROM SUBMISSION_STATS
6+
GROUP BY CHALLENGE_ID
7+
), TOTAL_VIEW_STATS AS (
8+
SELECT CHALLENGE_ID,
9+
SUM(TOTAL_VIEWS) AS GRAND_TOTAL_VIEWS,
10+
SUM(TOTAL_UNIQUE_VIEWS) AS GRAND_TOTAL_UNIQUE_VIEWS
11+
FROM VIEW_STATS
12+
GROUP BY CHALLENGE_ID
13+
)
14+
SELECT C1.CONTEST_ID, HACKER_ID, NAME,
15+
SUM(GRAND_TOTAL_SUBMISSIONS),
16+
SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS),
17+
SUM(GRAND_TOTAL_VIEWS),
18+
SUM(GRAND_TOTAL_UNIQUE_VIEWS)
19+
FROM
20+
CONTESTS C1
21+
LEFT JOIN COLLEGES C2 ON C1.CONTEST_ID = C2.CONTEST_ID
22+
LEFT JOIN CHALLENGES C3 ON C2.COLLEGE_ID = C3.COLLEGE_ID
23+
LEFT JOIN TOTAL_VIEW_STATS V ON C3.CHALLENGE_ID = V.CHALLENGE_ID
24+
LEFT JOIN TOTAL_SUBMISSION_STATS S ON C3.CHALLENGE_ID = S.CHALLENGE_ID
25+
GROUP BY
26+
C1.CONTEST_ID, HACKER_ID, NAME
27+
HAVING
28+
SUM(GRAND_TOTAL_SUBMISSIONS) +
29+
SUM(GRAND_TOTAL_ACCEPTED_SUBMISSIONS) +
30+
SUM(GRAND_TOTAL_VIEWS) +
31+
SUM(GRAND_TOTAL_UNIQUE_VIEWS) != 0
32+
ORDER BY C1.CONTEST_ID;

tasks/art/44.png

43.2 KB
Loading

0 commit comments

Comments
 (0)