본문 바로가기
SQL 공부

사전캠프 걷기반 퀘스트 11 (마지막 연습 문제)

by 나노다 2024. 10. 14.

모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!

SELECT o.id "주문ID"
	, p.name "상품명"
FROM products p inner join orders o on p.id = o.product_id

 

총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!

SELECT 상품ID
	, 총매출
FROM
    (
    SELECT o.product_id "상품ID"
        , o.quantity * p.price "총매출"
        , MAX(o.quantity * p.price) " 최고매출"
    FROM products p inner join orders o on p.id = o.product_id
    GROUP BY 1
    ) SubQ1
WHERE 총매출 = 최고매출

 

각 상품 ID별로 판매된 총 수량(quantity)을 계산하는 쿼리를 작성해주세요!

SELECT product_id "상품ID"
	, SUM(quantity) "총수량"
FROM orders 
GROUP BY 1

 

2023년 3월 3일 이후에 주문된 모든 상품의 이름을 나열하는 쿼리를 작성해주세요!

SELECT 상품명
FROM
    (
    SELECT p.name "상품명"
        , IF(date_format(date(o.order_date), '%Y$m$d') >= 20230303, 1, 0) "조건"
    FROM products p inner join orders o on p.id = o.product_id
    ) SubQ1
WHERE 조건 = 1

 

가장 많이 판매된 상품의 이름을 찾는 쿼리를 작성해주세요!

SELECT 상품명
FROM
    (
    SELECT p.name "상품명"
        , SUM(o.quantity) "판매량"
    FROM products p inner join orders o on p.id = o.product_id
    GROUP BY 1
    ) SubQ1
WHERE 판매량 = MAX(판매량)

 

각 상품 ID별로 평균 주문 수량을 계산하는 쿼리를 작성해주세요!

SELECT product_id "상품ID"
	, AVG(quantity) "평균주문량"
FROM orders
GROUP BY 1

 

판매되지 않은 상품의 ID와 이름을 찾는 쿼리를 작성해주세요!

SELECT 상품ID
	, 상품명
FROM
    (
    SELECT o.product_id "상품ID"
        , p.name "상품명"
        , SUM(o.quantity) "판매량"
        , if(SUM(o.quantity) = 0, 1, 0) "조건"
    FROM products p inner join orders o on p.id = o.product_id
    GROUP BY 1
    ) SubQ1
WHERE 조건 = 1