PostgreSQL/집합 연산자와 서브쿼리
PostgreSQL ALL 연산자
DOGvelopers
2019. 11. 10. 16:14
반응형
ALL 연산자란?
값을 서브 쿼리에 의해 반환된 값 집합과 비교한다. ALL 연산자는 서브쿼리의 모든 값이 만족을 해야만 조건이 성립된다.
실습
- FILM 테이블의 영화 분류별 상영시간이 가장 긴 영화의 모든 상영시간 보다 크거나 같아야만 조건 성립, 영화 분류별 상영시간이 가장 긴 상영시간을 구합니다.
SELECT
TITLE,
LENGTH
FROM
FILM
WHERE
LENGTH >= ALL
(
SELECT
MAX(LENGTH)
FROM
FILM A,
FILM_CATEGORY B
WHERE
A.FILM_ID = B.FILM_ID
GROUP BY
B.CATEGORY_ID
)
상영시간이 가장 긴 영화는 185분 인것을 알 수 있습니다.
ALL이 없으면 ERROR가 납니다.
- FILM 테이블의 평가 기준을 기준으로 영화 상영 길이의 평균 값을 조회합니다.
평가 기준 평균값들 보다 상영시간이 긴 영화 정보를 조회합니다.
1. 평가 기준으로 평균 상영시간 조회
SELECT
RATING,ROUND (AVG(LENGTH),2)
FROM
FILM
GROUP BY
RATING;
1. 평균 시간보다 긴 상영시간 모두 조회
SELECT
FILM_ID,
TITLE,
LENGTH
FROM
FILM
WHERE
LENGTH > ALL (
SELECT
ROUND (AVG(LENGTH),2)
FROM
FILM
GROUP BY
RATING
)
ORDER BY LENGTH
반응형