일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- skip-gram
- select
- backward
- Stack
- que
- 프로그래머스
- 파이썬
- Programmers
- Word2vec
- 신경망
- boj
- SQL
- algorithm
- 딥러닝
- affine
- Sigmoid
- 자연어처리
- DeepLearning
- dl
- Python
- Numpy
- PPMI
- MySQL
- hash
- Heap
- CBOW
- stak
- FullyConnectedLayer
- sort
- kakao
- Today
- Total
혜온의 이것저것
[HackerRank] Challenges (MySQL) 본문
https://www.hackerrank.com/challenges/challenges/problem?isFullScreen=true
문제
Julia asked her students to create some coding challenges. Write a query to print the hacker_id, name, and the total number of challenges created by each student. Sort your results by the total number of challenges in descending order. If more than one student created the same number of challenges, then sort the result by hacker_id. If more than one student created the same number of challenges and the count is less than the maximum number of challenges created, then exclude those students from the result.
Input Format
The following tables contain challenge data:
- Hackers: The hacker_id is the id of the hacker, and name is the name of the hacker.
- Challenges: The challenge_id is the id of the challenge, and hacker_id is the id of the student who created the challenge.
Sample Input 0
Hackers Table:
Challenges Table:
Sample Output 0
21283 Angela 6
88255 Patrick 5
96196 Lisa 1
Sample Input 1
Hackers Table:
Challenges Table:
Sample Output 1
12299 Rose 6
34856 Angela 6
79345 Frank 4
80491 Patrick 3
81041 Lisa 1
Explanation
For Sample Case 0, we can get the following details:
Students 5077 and 627423 both created 4 challenges, but the maximum number of challenges created is 6 so these students are excluded from the result.
For Sample Case 1, we can get the following details:
Students 12299 and 34856 both created 6 challenges. Because is the maximum number of challenges created, these students are included in the result.
풀이
select h.hacker_id, h.name, count(c.challenge_id) cnt
from Hackers h
join Challenges c on h.hacker_id=c.hacker_id
group by h.hacker_id, h.name
having cnt=(select max(sub.cnt) as maxcnt
from (select hacker_id, count(*) cnt from challenges group by hacker_id) sub)
or cnt in (select sub.cnt
from (select hacker_id, count(*) cnt from challenges group by hacker_id)sub
group by sub.cnt
having count(*)=1)
order by cnt desc, hacker_id
'Data Analysis > SQL' 카테고리의 다른 글
[HackerRank] SQL Project Planning (MySQL) (0) | 2022.09.13 |
---|---|
[HackerRank] Contest Leaderboard (MySQL) (0) | 2022.09.08 |
[HackerRank] Ollivander's Inventory (MySQL) (0) | 2022.09.06 |
[HackerRank] Top Competitors (MySQL) (0) | 2022.09.06 |
[HackerRank] The Report (MySQL) (0) | 2022.08.29 |