본문 바로가기
HackerRank

The Report(SQL)

by Doromi 2023. 10. 19.
728x90
반응형
학생 데이터 테이블에서 보고서를 생성하기 위한 SQL 쿼리를 작성하는 내용입니다. 이 문제 설명에서는 학생 데이터 테이블을 기반으로 보고서를 생성해야 합니다. 다음은 구체적인 요구 사항입니다.

등급이 8 미만인 학생은 제외해야 합니다.
보고서는 등급 내림차순(높은 등급 우선)으로 정렬되어야 합니다.
만약 동일한 등급(8-10)을 받은 학생이 여러 명이라면, 이름을 오름차순으로 정렬해야 합니다.
등급이 8 미만인 경우 이름을 "NULL"로 사용하고, 등급에 따라 내림차순으로 나열해야 합니다.
등급이 1-7인 학생이 여러 명인 경우, 점수를 오름차순으로 정렬해야 합니다.
이 문제를 해결하기 위해 지정된 기준에 따라 필요한 데이터를 검색하고 정렬하는 SQL 쿼리를 작성해야 합니다. 쿼리는 CASE 문을 사용하여 학생의 성적에 따라 등급을 계산하고 지정된 기준에 따라 정렬 로직을 처리해야 합니다.

SQL 쿼리는 이러한 요구 사항을 모두 충족시키며 문제 설명에 명시된 모든 기준을 준수합니다.


SELECT 
CASE
WHEN MARKS < 70 THEN NULL
ELSE NAME
END AS NAME,
CASE 
WHEN MARKS >= 90 AND MARKS <=100 THEN 10
WHEN MARKS >=80 AND MARKS <=89 THEN 9
WHEN MARKS >= 70 AND MARKS <= 79 THEN 8
WHEN MARKS >= 60 AND MARKS <= 69 THEN 7
WHEN MARKS >= 50 AND MARKS <= 59 THEN 6
WHEN MARKS >= 40 AND MARKS <= 49 THEN 5
WHEN MARKS >= 30 AND MARKS <= 39 THEN 4
WHEN MARKS >= 20 AND MARKS <= 29 THEN 3
WHEN MARKS >= 10 AND MARKS <= 19 THEN 2
WHEN MARKS >= 0 AND MARKS <= 9 THEN 1
END AS GRADE
, marks
FROM STUDENTS
ORDER BY 
CASE WHEN GRADE >= 8 THEN GRADE
END DESC,
CASE WHEN GRADE >= 8 THEN NAME
END ASC,
CASE WHEN GRADE < 8 THEN GRADE
END DESC,
CASE WHEN GRADE < 8 THEN MARKS
END ASC,
NAME ASC;

 

728x90
반응형

'HackerRank' 카테고리의 다른 글

hasPathWithGivenSum  (0) 2024.04.02
Top Competitors(SQL)  (0) 2023.10.20
Average Population of Each Continent(SQL)  (0) 2023.10.19
African Cities(SQL)  (2) 2023.10.17
Occupations(SQL)  (1) 2023.10.16