id | name | price |
1 | 랩톱 | 1200 |
2 | 핸드폰 | 800 |
3 | 타블렛 | 400 |
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 o.id, p.name
from orders o
left join products p
on o.product_id = p.id
2. 총 매출(price * quantity의 합)이 가장 높은 상품의 ID와/ 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!
select p.id, sum(p.price * o.quantity) total_sales
from orders o
left join products p
on o.product_id = p.id
group by p.id
order by 2 DESC limit 1
3. 각 상품 ID별로 판매된 총 수량(quantity)을 계산하는 쿼리를 작성해주세요!
select p.id, sum(o.quantity)
from orders o
left join products p
on o.product_id = p.id
group by p.id
4. 2023년 3월 3일 이후에 주문된 모든 상품의 이름을 나열하는 쿼리를 작성해주세요!
select p.name
from orders o
inner join products p
on o.product_id = p.id
where o.order_date > '2023-03-03'
5. 가장 많이 판매된 상품의 이름을 찾는 쿼리를 작성해주세요!
select p.name, sum(o.quantity)
from orders o
inner join products p
on o.product_id = p.id
group by p.name
order by 2 desc limit 1
6. 각 상품 ID별로 평균 주문 수량을 계산하는 쿼리를 작성해주세요!
select p.id, avg(o.quantity)
from orders o
inner join products p
on o.product_id = p.id
group by p.id
7. 판매되지 않은 상품의 ID와 이름을 찾는 쿼리를 작성해주세요!
select a.id, a.name
from
(
select p.id, p.name, sum(o.quantity) as sum_quantity
from products p
left join orders o
on o.product_id = p.id
group by 1, 2
) a
where 0 = a.sum_quantity
'SQL' 카테고리의 다른 글
SQL 실전! 실제 DB에서 연습해요(2) - Lv4. 단골 고객님 찾기 (0) | 2024.12.10 |
---|---|
SQL 실전! 실제 DB에서 연습해요(1) (0) | 2024.12.10 |
SQL 문법 연습 - 10) 이젠 테이블이 2개입니다 (0) | 2024.12.07 |
SQL 문법 연습 - 9)아프면 안됩니다! 항상 건강 챙기세요! (0) | 2024.12.07 |
SQL 문법 연습 - 8) LOL을 하다가 홧병이 나서 병원을 찾아왔습니다. (0) | 2024.12.07 |