HackerRank - MS SQL Server
[해커랭크/MS SQL] The Report
nomeleon
2022. 3. 24. 17:33
반응형
문제 링크입니다!
The Report | HackerRank
Write a query to generate a report containing three columns: Name, Grade and Mark.
www.hackerrank.com
문제
=> 케티는 이브에게 세 개의 열(이름, 등급 및 마크)을 포함하는 보고서를 생성하는 작업을 준다.
케티는 8점 이하의 점수를 받은 학생들의 이름을 원하지 않는다.
보고서는 등급별 내림차순으로 작성해야 한다.
동일한 등급(8-10)의 학생이 두 명 이상 있는 경우 해당 학생의 이름을 알파벳 순으로 정렬해라.
마지막으로 등급이 8보다 낮으면 'NULL'을 이름으로 사용하고 등급별 내림차순으로 나열해라.
같은 등급(1-7)의 학생이 두 명 이상 있는 경우 해당 학생의 점수를 오름차순으로 정렬헤라.
풀이
SELECT
CASE
WHEN G.GRADE < 8 THEN NULL
ELSE S.NAME
END,
G.GRADE,
S.MARKS
FROM STUDENTS AS S
JOIN GRADES AS G ON S.MARKS BETWEEN G.MIN_MARK AND G.MAX_MARK
ORDER BY G.GRADE DESC, S.NAME, S.MARKS
CASE(Transact-SQL) - SQL Server
CASE 식의 Transact-SQL 참조입니다. CASE는 조건 목록을 평가하여 특정 결과를 반환합니다.
docs.microsoft.com