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
