장래 프로그래머의 블로그

11) 마지막 연습 문제 ! 본문

[내일배움캠프]걷기반

11) 마지막 연습 문제 !

wriml92 2024. 9. 26. 21:39

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

(앞선 문제의 products 테이블과 orders테이블이 이미 있으므로 둘 다 끝에 2를 붙였다.)

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

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

1
2
select id, name 
from products2
cs

 

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

1
2
3
4
5
6
7
select p.id,
    sum(p.price * o.quantity) '총 매출'
from products2 p inner join orders2 o
on p.id = o.product_id
group by 1
order by 2 desc 
limit 1
cs

 

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

1
2
3
4
5
select p.id,
    sum(o.quantity) '총 수량'
from products2 p inner join orders2 o
on p.id = o.product_id
group by 1
cs

 

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

1
2
3
4
select p.name 
from products2 p inner join orders2 o
on p.id = o.product_id
where o.order_date > '2023-03-03'
cs

 

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

1
2
3
4
5
6
select p.name '가장 많이 판매된 상품'
from products2 p inner join orders2 o
on p.id = o.product_id
group by 1
order by sum(o.quantity) desc 
limit 1
cs

 

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

1
2
3
4
5
select p.id '상품 ID',
    avg(o.quantity) '평균 주문 수량'
from products2 p inner join orders2 o 
on p.id = o.product_id
group by 1
cs

 

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

1
2
3
4
5
select p.id '판매되지 않은 삼품 ID',
    p.name '상품 이름'
from products2 p inner join orders2 o
on p.id = o.product_id 
where o.quantity=0
cs