부트캠프

마지막 연습 문제 !

ohs020105 2024. 10. 22. 20:48

다음과 같은 상품(products) 테이블과 주문(orders) 테이블이 있습니다.

  • products 테이블
id  name  price
1 랩톱 1200
2 핸드폰 800
3 타블렛 400
  • orders 테이블
id  product_id quantity order_date
101 1 2 2023-03-01
102 2 1 2023-03-02
103 3 5 2023-03-04

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

SELECT ord.id, pr.name
FROM products2 pr inner join orders2 ord on pr.id=ord.product_id
;

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

SELECT ord.product_id, pr.price*ord.quantity 
FROM products2 pr inner join orders2 ord on pr.id=ord.product_id
ORDER BY 2 desc
LIMIT 1
;

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

SELECT pr.id, ord.quantity
FROM products2 pr inner join orders2 ord on pr.id=ord.product_id
;

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

SELECT pr.name
FROM products2 pr inner join orders2 ord on pr.id=ord.product_id
WHERE order_date>'2023-03-03'
;

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

SELECT pr.name
FROM products2 pr inner join orders2 ord on pr.id=ord.product_id
ORDER BY ord.quantity desc
LIMIT 1
;

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

SELECT pr.id, avg(ord.quantity)
FROM products2 pr inner join orders2 ord on pr.id=ord.product_id
GROUP BY 1
;

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

SELECT pr.id, pr.name
FROM products2 pr inner join orders2 ord on pr.id=ord.product_id
WHERE ord.quantity=0
;