bong-u/til

[모각코24동계] 03 : 결과

수정일 : 2024-06-24

Sub Query

단일 행 서브 쿼리

  • 서브쿼리 결과 : 단일 행
  • 결과 : 단일 행
1SELECT USER_ID, USER_NAME, USER_AGE
2FROM USERS
3WHERE TEAM_ID = (
4	SELECT TEAM_ID
5	FROM USERS
6	WHERE USER_NAME='BONG'
7);

다중 행 서브 쿼리

  • 서브쿼리 결과 : 다중 행
  • 결과 : 단일행
  • 다중 행 비교 연산자와 함께 사용 (IN, ALL, ANY, SOME)
1SELECT TEAM_ID, TEAM_NAME, TEAM_LOGO_URL
2FROM TEAM
3WHERE TEAM_ID IN (
4	SELECT TEAM_ID
5	FROM USERS
6	WHERE USER_NAME='BONG'
7)

다중 컬럼 서브 쿼리

  • 서브쿼리의 결과: 다중 행
  • 결과 : 다중 행
1SELECT TEAM_ID, USER_NAME
2FROM USERS
3WHERE (TEAM_ID, HEIGHT)
4IN (
5	SELECT TEAM_ID, MIN(HEIGHT)
6	FROM USERS
7	GROUP BY TEAM_ID
8)
9ORDER BY TEAM_ID, USER_NAME

연관 서브 쿼리

1SELECT B.TEAM_NAME, A.USER_NAME, A.HEIGHT
2FROM USERS A, TEAM B
3WHERE A.HEIGHT < (
4	SELECT AVG(X.HEIGHT)
5	FROM USERS
6	WHERE X.TEAM_ID = A.TEAM_ID
7	GROUP BY X.TEAM_ID
8)
9ORDER BY USER_NAME

다른 위치에서 사용하는 서브 쿼리

1SELECT A.USER_NAME AS 유저이름, A.HEIGHT AS 
2ROUND ((
3	SELECT AVG (X.HEIGHT)
4	FROM USERS X WHERE X.TEAM_ID = A.TEAM_ID), 3)
5	AS 팀평균키 FROM USERS A)