-
필터링과 서브쿼리(IN.ALL.ANY)DB/Postgresql(DB) 2023. 11. 28. 19:30
쿼리 예시!
더보기-- 1. 판매량 상위 3개 음료를 다음과 같이 조회하려 한다. 주어진 두 쿼리를 조합하여 이를 구하시오.
-- 메인 쿼리 ( 판매량 상위 3개의 음료 정보)
SELECT
id AS "ID",
name AS "음료명"
FROM
beverages
WHERE
id IN ( -- 음료 id 별, 판매량
SELECT
beverage_id
FROM
order_details
GROUP BY
beverage_id
ORDER BY
SUM(COUNT) DESC
LIMIT
3
)
;
-- 음료 id 별, 판매량
-- 판매량 상위 3개 음료의 판매량
SELECT
beverage_id
FROM
order_details
GROUP BY
beverage_id
ORDER BY
SUM(COUNT) DESC
LIMIT
3
;
-- 2. 아메리카노와 라떼보다 가격이 싼 음료는 다음과 같다. 주어진 쿼리를 조합하여 이를 조회하시오.
-- 메인쿼리 (아메리카노와 라떼보다 싼 음료 )
SELECT
name AS "음료명",
price AS "가격"
FROM
beverages
WHERE
price < ALL(
SELECT
price
FROM
beverages
WHERE
name IN('아메리카노','라떼')
) -- 아메리카노와 라떼
;
-- 아메리카노와 라떼의 가격
SELECT
price
FROM
beverages
WHERE
name IN('아메리카노','라떼')
;
--3. 커피가 아닌 음료들 중, 적어도 한 커피보다
-- 가격이 비싼것은 다음과 같다. 주어진 두 쿼리를 조합하여 조회하시오.
-- 메인쿼리(적어도 한 커피보다 비싼 음료)
SELECT
name AS "음료명",
price AS "가격"
FROM
beverages
WHERE
btype != 'COFFEE'
AND
price > ANY(
-- 모든 커피의 이름과 가격
SELECT
PRICE
FROM
beverages
WHERE
btype = 'COFFEE'
)
;
-- 모든 커피의 이름과 가격
SELECT
PRICE
FROM
beverages
WHERE
btype = 'COFFEE'
;
'DB > Postgresql(DB)' 카테고리의 다른 글
서브쿼리 (0) 2023.11.28 그룹필터링 , 정렬, 조회 개수 지정 (0) 2023.11.28 그룹화(Group By 와 집계 함수) (0) 2023.11.28 Join (0) 2023.11.28 primary key & Foreign Key (0) 2023.11.27