본문 바로가기

SQL 공부(ft.sparta)/4주차

4-2. Subquery 본격 사용해보기

 

1.where 절에 들어가는 subquery

 

2.select 절에 들어가는 subquery

실행하면 뽑을때마다 이 친구가 실행된다.

예를들어 연습해보겠다.

 - '오늘의 다짐' 데이터를 보고 싶은데 '오늘의 다짐' 좋아요의 수가, 본인이 푱소에 받았던 좋아요 수에 비해 얼마나 높고 낮은지 알아보자.

 

먼저 checkins 테이블에서 user_id하나를 검색해본다.

그리고 평균을 구해본다.

그럼 우린 이렇게 해볼 수 있다. 우선 위에 썻던 코드를 일단 내려놓고, 다시 한번 적은뒤 우린 여기서 checkin_id, user_id, likes 이 세가지를 뽑아보자.

그럼 이렇게 나온다.

 

여기에 하나 더해서 각 사람들의 평균을 알고 싶은거다.

 

이렇게 사용하면 된다. 우선 우리가 처음에 작성한 코드를 아래처럼 넣어준다.

여기서 아래처럼 좀 수정해주고 실행하면

이렇게 나온다.

 

이렇게 나올때마다 괄호안에있는 쿼리가 실행된다.

 

 

2.from 절에 들어가는 subquery

가장 많이 사용되는 유형이다.

 

예를 들어 연습해보겠다.

먼저 유저 별 좋아요 평균을 구해보자.

일단 여기까지 해놓는다.

그리고 point_users를 실행해본다. point를 많이 가진 사람일수록 열심히 한 사람들이다. 그사람들은 평균적인 like도 많이 받았을까? 궁금할 수 있다.

위 select절과 아래 select절을 join하면 바로 확인할 수 있는데, 아래 select절을 마치 원래 있던 테이블처럼 사용할 수 있다.

그게 바로 subquery다.

먼저 아래 코드를 inner join을 하는데 아래 사진처럼 작성해준다.

 

실행하면 아래 사진처럼나온다.

이렇게 괄호안에 있는 select절을 마치 원래 있던 테이블처럼 사용하는게 select 절 subquery 이다.

 

다음시간엔 아직 익숙치않으니 subquery문을 복습 하겠다.