PostgreSQL ALL 연산자를 사용하여 값을 하위 쿼리에서 반환된 값 목록과 비교하는 방법

 

 

하위 쿼리에서 반환된 값 목록과 비교하여 데이터를 쿼리할 수 있습니다 .

comparison_operator ALL (subquery)
  • ALL 연산자 앞에는 같음(=), 같지 않음(!=), 보다 큼(>), 크거나 같음(>=), 보다 작음(<) 및 보다 작거나 같은 비교 연산자가 와야 합니다. (<=)와 같습니다.
  • ALL 연산자 다음에 괄호로 묶어야 하는 하위 쿼리가 와야 합니다.

 

하위 쿼리가 일부 행을 반환한다고 가정하면 ALL 연산자는 다음과 같이 작동합니다.

  1. column_name > ALL (subquery) 값이 하위 쿼리에서 반환된 가장 큰 값보다 크면 표현식은 true로 평가됩니다.
  2. column_name >= ALL (subquery) 값이 하위 쿼리에서 반환된 가장 큰 값보다 크거나 같으면 표현식은 true로 평가됩니다.
  3. column_name < ALL (subquery) 값이 하위 쿼리에서 반환된 가장 작은 값보다 작은 경우 표현식은 true로 평가됩니다.
  4. column_name <= ALL (subquery) 값이 하위 쿼리에서 반환된 가장 작은 값보다 작거나 같으면 표현식은 true로 평가됩니다.
  5. column_name = ALL (subquery) 값이 하위 쿼리에서 반환된 값과 같으면 표현식은 true로 평가됩니다.
  6. column_name != ALL (subquery) 값이 하위 쿼리에서 반환된 값과 같지 않으면 표현식은 true로 평가됩니다.

하위 쿼리가 행을 반환하지 않는 경우 ALL 연산자는 항상 true로 평가됩니다.


반응형

 

SELECT
    ROUND(AVG(length), 2) avg_length
FROM
    film
GROUP BY
    rating
ORDER BY
    avg_length DESC;

 

-- 평균 길이 목록보다 긴 모든 영화 찾는 쿼리
SELECT
    film_id,
    title,
    length
FROM
    film
WHERE
    length > ALL (
            SELECT
                ROUND(AVG (length),2)
            FROM
                film
            GROUP BY
                rating
    )
ORDER BY
    length;

반응형

'SW ENGINEERING > Postgres' 카테고리의 다른 글

[PostgreSQL] BASIC - EXISTS  (0) 2021.09.03
[PostgreSQL] BASIC - CTE  (0) 2021.09.03
[PostgreSQL] BASIC - ANY  (0) 2021.09.03
[PostgreSQL] BASIC - Subquery  (0) 2021.09.03
[PostgreSQL] BASIC - ROLLUP  (0) 2021.09.03
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기