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
|
모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!
정답
SELECT o.id, p.name FROM orders o JOIN products p ON o.product_id = p.id;
총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!
정답
SELECT p.id, SUM(p.price * o.quantity) AS total_sales FROM products p INNER JOIN orders o ON p.id = o.product_id GROUP BY p.id ORDER BY total_sales DESC LIMIT 1;
각 상품 ID별로 판매된 총 수량(quantity)을 계산하는 쿼리를 작성해주세요!
정답
SELECT p.id, SUM(o.quantity) AS total_quantity FROM products p INNER JOIN orders o ON p.id = o.product_id GROUP BY p.id;
2023년 3월 3일 이후에 주문된 모든 상품의 이름을 나열하는 쿼리를 작성해주세요!
정답
SELECT p.name FROM products p INNER JOIN orders o ON p.id = o.product_id WHERE o.order_date > '2023-03-03';
가장 많이 판매된 상품의 이름을 찾는 쿼리를 작성해주세요!
정답
SELECT p.name, SUM(o.quantity) AS total_quantity FROM products p INNER JOIN orders o ON p.id = o.product_id GROUP BY p.id ORDER BY total_quantity DESC LIMIT 1;
각 상품 ID별로 평균 주문 수량을 계산하는 쿼리를 작성해주세요!
정답
SELECT p.id, AVG(o.quantity) AS average_quantity FROM products p INNER JOIN orders o ON p.id = o.product_id GROUP BY p.id;
판매되지 않은 상품의 ID와 이름을 찾는 쿼리를 작성해주세요!
정답
SELECT p.id, p.name FROM products p LEFT JOIN orders o ON p.id = o.product_id WHERE o.id IS NULL;
'sql' 카테고리의 다른 글
date round() (0) | 2025.01.24 |
---|---|
selct from where (0) | 2025.01.24 |
e.name d.name JOIN ON (0) | 2025.01.23 |
* count() date_sub() (0) | 2025.01.23 |
date_sub date_add (0) | 2025.01.22 |