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