반응형

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

+ Recent posts