John's Code Journey

IT공부/SQL[스파르타 사전캠프] SQL걷기반 마지막 문제 본문

IT공부/SQL

IT공부/SQL[스파르타 사전캠프] SQL걷기반 마지막 문제

Johnnnn 2025. 2. 10. 17:17
728x90

마지막 연습 문제 !

 
다음과 같은 상품(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
 
44.
모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!
 
SELECT o.id AS order_id, p.name AS product_name
FROM orders o
JOIN products p ON o.product_id = p.id
ORDER BY o.id;
 
45.
총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!
 
SELECT p.id AS product_id,
       SUM(p.price * o.quantity) AS total_revenue
FROM orders o
JOIN products p ON o.product_id = p.id
GROUP BY p.id
ORDER BY total_revenue DESC
LIMIT 1;
 
46.
각 상품 ID별로 판매된 총 수량(quantity)을 계산하는 쿼리를 작성해주세요!
 
SELECT o.product_id AS product_id,
       SUM(o.quantity) AS total_quantity
FROM orders o
GROUP BY o.product_id;
 
47.
2023년 3월 3일 이후에 주문된 모든 상품의 이름을 나열하는 쿼리를 작성해주세요!
 
SELECT p.name AS product_name
FROM orders o
JOIN products p ON o.product_id = p.id
WHERE o.order_date > '2023-03-03';
 
48.
가장 많이 판매된 상품의 이름을 찾는 쿼리를 작성해주세요!
 
SELECT p.name
FROM products p
JOIN orders o ON p.id = o.product_id
GROUP BY p.name
ORDER BY SUM(o.quantity) DESC
LIMIT 1;
 
49.
각 상품 ID별로 평균 주문 수량을 계산하는 쿼리를 작성해주세요!
 
SELECT product_id, AVG(quantity) AS avg_quantity
FROM orders
GROUP BY product_id;
 
50.
판매되지 않은 상품의 ID와 이름을 찾는 쿼리를 작성해주세요!

 

SELECT p.id, p.name
FROM products p
LEFT JOIN orders o ON p.id = o.product_id
WHERE o.product_id IS NULL;