[hackerrank] The Report

yenpkr·2025년 8월 21일
0

sql

목록 보기
91/91

문제

  • 이름, 등급, 점수 출력
  • 1~7 등급은 이름 NULL로 표기
  • 등급 desc, 등급 같을 경우 이름 asc, 1~7등급 여러명이면 점수 asc

제출

select case when marks < 70 then NULL
                 else name end name, 
       case when marks between 0 and 9 then 1 
                  when marks between 10 and 19 then 2 
                  when marks between 20 and 29 then 3 
                  when marks between 30 and 39 then 4 
                  when marks between 40 and 49 then 5 
                  when marks between 50 and 59 then 6 
                  when marks between 60 and 69 then 7 
                  when marks between 70 and 79 then 8 
                  when marks between 80 and 89 then 9 
                  when marks between 90 and 100 then 10 end as grade, marks
from students
order by 2 desc,1 asc

📌 새로 배운 내용

✅ ON ~ between A and B

  • 조인의 조건
ON a.Marks BETWEEN b.Min_Mark AND b.Max_Mark

👉 학생의 점수가 해당 등급의 점수 구간 안에 들어가면 그 학생과 그 등급을 매칭

또 다른 답

select case when g.grade <= 7 then NULL
            else name end as name, g.grade, s.marks
from students s
join grades g
on s.marks between g.min_mark and g.max_mark
order by 2 desc, 1 asc, 3 asc

0개의 댓글