ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 필터링과 서브쿼리(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
Designed by Tistory.