-
[HackerRank]-The ReportmySQL 2023. 3. 1. 21:14
https://www.hackerrank.com/challenges/the-report/problem?isFullScreen=true
The Report | HackerRank
Write a query to generate a report containing three columns: Name, Grade and Mark.
www.hackerrank.com
SELECT IF(B.GRADE>=8, A.NAME, 'NULL'), B.GRADE, A.MARKS FROM Students A join Grades B ON A.MARKS BETWEEN B.MIN_MARK AND B.MAX_MARK ORDER BY B.GRADE DESC, A.NAME, A.MARKS
문제 조건을 하나씩 살펴보면
1. 출력은 이름, 등급, 점수로 하되 등급이 8등급 미만인 사람은 이름 대신 'NULL'로 표시한다.
2. 등급은 Grades의 Min_mark와 Max_mark 사이의 값으로 선택한다.
3. 정렬은 Grade의 내림차순, 이름의 오름차순, 점수의 오름차순 으로 표시한다.
갑자기 레벨이 넘 오른 거 같긴 하지만 하나씩 분리해서 생각해보면
SELECT IF(B.GRADE>=8, A.NAME, 'NULL')
등급이 8등급 이상인지 이하인지에 따라 표기를 다르게 하는 방법은 IF를 통해서 사용할 수 있다.
IF(조건, 조건이 참일 경우 표시할 것, 조건이 거짓일 경우 표시할 것)
ON A.MARKS BETWEEN B.MIN_MARK AND B.MAX_MARK
점수가 Min_mark와 Max_mark 사이인 경우 해당 등급(B.Grade)을 표시할 것
이 두 부분이 조금 힘든 부분 아니었나 싶다.
'mySQL' 카테고리의 다른 글
[HackerRank] Average Population of Each Continent (0) 2023.02.28 [HackerRank] Top Earners (0) 2023.02.27 [HackerRank] The Blunder (0) 2023.02.27 [HackerRank] Weather Observation Station 20 (0) 2023.02.26 [HackerRank] Weather Observation Station 19 (0) 2023.02.26