SQL 공부

HackerRank로 SQL 공부하기 - The Report

데이터분석가_안졍 2023. 12. 29. 16:30
728x90

1. Students 와 Grades를 between을 사용하여 조인한다.

2. 8등급보다 낮은 등급을 받은 학생들의 이름은 null 사용한다.

3. 높은 등급 순으로 정렬한다. 혹시 같은 등급이 있다면 이름을 알파벳 순서로 정렬한다. 

null 인 이름이 있는 것은 학년별로 내림차순한다. 만약 그들에게 같은 등급(1-7)을 받은 학생이 둘 이상 있다면, 그 학생들의 marks 를 기준으로 오름차순으로 정렬한다.

 


1. Students 와 Grades를 between을 사용하여 조인한다.

select *
from students as s
join grades as g on s.marks between g.min_mark and g.max_mark

2. 8등급보다 낮은 등급을 받은 학생들의 이름은 null 사용한다.

 select (case when g.grade < 8 then null else s.name end) as name,
        g.grade,
        s.marks
from students as s
join grades as g on s.marks between g.min_mark and g.max_mark

3. 높은 등급 순으로 정렬한다. 혹시 같은 등급이 있다면 이름을 알파벳 순서로 정렬한다. 

null 인 이름이 있는 것은 학년별로 내림차순한다. 만약 그들에게 같은 등급(1-7)을 받은 학생이 둘 이상 있다면, 그 학생들의 marks 를 기준으로 오름차순으로 정렬한다.

select (case when g.grade < 8 then null else s.name end) as name,
        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 grade desc, name,s.marks