- 1개의 문자나 숫자를 뱉는 SELECT 문만 서브쿼리로 사용할 수 있다.
- 서브쿼리를 사용할 때 소괄호를 사용해야한다.
가격이 전체 게임의 평균 가격보다 높은 게임만 출력하고 싶다.
SELECT * FROM steam.game
WHERE 가격 > (SELECT avg(가격) FROM steam.game)
게임명, 다운로드, 게임의 다운로드 수와 평균 다운로드 수의 차이를 DIFF 라는 컬럼의 이름으로하는 세가지 정보를 출력하고 싶다.
SELECT 게임명, 다운로드, 다운로드 - (SELECT AVG(다운로드) FROM steam.game) AS DIFF FROM steam.game;
※ 그러나 IN( )안에 서브쿼리를 사용할 때는 1개의 문자나 숫자를 뱉는 SELECT 문만 사용할 수 있는 것이 아니다!
다운로드 최상위 3개의 게임 수가 담긴 topklist 테이블에 들어있는 게임들의 가격만을 출력하고 싶다.
SELECT 가격 FROM steam.game
WHERE 게임명 IN (SELECT 게임명 FROM steam.topklist);
그러나 보통 테이블을 2개 이상 사용해서 결과를 출력할 때는서브쿼리 대신 JOIN 문법을 사용하는 것이 일반적이다.