반응형
www.hackerrank.com/challenges/the-report/problem
The Report | HackerRank
Write a query to generate a report containing three columns: Name, Grade and Mark.
www.hackerrank.com
해결 방법 : 간단한 JOIN과 IF문 처리
- (grade > 7)인 경우 name을, (grade <= 7)이면 NULL을 첫번째 column값으로 지정해줘야 하고, 앞의 두가지 경우에 따라 ORDER BY 조건이 다르다.
- (grade > 7)인 학생은 higher grade→name alphabet
- (grade <= 7)이면 grade→marks
- 따라서 grade가 7이하인 학생들은 name으로 정렬되지 않도록 ORDER BY에 s.name이 아니라 해당 column의 alias를 사용해줘야 한다. (그런데 s.name으로 해도 통과가 되네...)
SELECT if(g.grade > 7, s.name, NULL) as n, g.grade, s.marks
FROM students as s, grades as g
WHERE s.marks between g.min_mark and g.max_mark
ORDER BY g.grade desc, n, s.marks;반응형
'IT study > SQL' 카테고리의 다른 글
| Ollivander's Inventory (0) | 2021.05.01 |
|---|---|
| Top Competitors (0) | 2021.04.26 |
| Weather Observation Station 20 (0) | 2021.04.25 |
| Weather Observation Station 18 ~ 19 (0) | 2021.04.23 |
| New Companies (+ 형 변환) (0) | 2021.04.22 |