11-1. 서브쿼리 추가 문제풀이

기초/SQL|2021. 4. 29. 21:31

연습문제 1

>SELECT CASE WHEN g.grade > 7 THEN s.name
    ELSE NULL END
    ,g.grade
    ,s.marks
FROM students s
JOIN grades g ON s.marks BETWEEN g.min_mark AND g.max_mark
ORDER BY g.grade DESCs.name ASC

 

JOIN절 내에 BETWEEN을 넣어서 풀어야 하는 문제!
BETWEEN을 조인 조건으로 써야한다는 사실 외에는 주어진 게 없었는데

따로 검색하지도 않고 스스로 시행착오하면서 풀어 내서 매우 뿌듯하다!!!

 

연습문제 2

>SELECT DISTINCT L3.num AS ConsecutiveNums

FROM logs L

INNER JOIN logs L2 ON L.num = L2.num AND L.id + 1 = L2.id

INNER JOIN logs L3 ON L2.num = L3.num AND L2.id + 1 = L3.id

 

적어도 세 번 이상 연속해서 나오는 숫자만을 꺼내는 문제~.~

하나의 테이블에 셀프 조인을 두 번 해서 풀어야 한다.

위 문제와 같은 이유로 뿌듯하다!!!

 

선생님이 짠 코드

>SELECT DISTINCT L3.num AS ConsecutiveNums

FROM logs L

INNER JOIN logs L2 ON L.id + 1 = L2.id

INNER JOIN logs L3 ON L2.id + 1 = L3.id

WHERE L.num = L2.num AND L.num = L3.num

'기초 > SQL' 카테고리의 다른 글

12. 윈도우 함수  (0) 2021.05.06
11. 서브쿼리  (0) 2021.04.15
10. ERD, 데이터 타입  (0) 2021.04.14

댓글()