다음과 같은 상품(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 |
- 모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!
- SELECT o.id, p.name
FROM orders AS o LEFT JOIN products AS p
ON o.product_id = p.id;
- SELECT o.id, p.name
- 총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!
- SELECT p.d, SUM(p.price * o.quantity) AS sales
FROM orders AS o LEFT JOIN products AS p
ON o.product_id = p.id
GROUP BY p.id
ORDER BY n DESC
LIMIT 1;
- SELECT p.d, SUM(p.price * o.quantity) AS sales
- 각 상품 ID별로 판매된 총 수량(quantity)을 계산하는 쿼리를 작성해주세요!
- SELECT p.d, SUM(o.quantity)
FROM products AS p LEFT JOIN orders AS o
ON p.id = o.product_id
GROUP BY p.id;
- SELECT p.d, SUM(o.quantity)
- 2023년 3월 3일 이후에 주문된 모든 상품의 이름을 나열하는 쿼리를 작성해주세요!
- SELECT p.name
FROM products AS p JOIN orders AS o
ON o.product_id = p.id
GROUP BY p.name
HAVING MAX(o.order_date) > '2023-03-03';
- SELECT p.name
- 가장 많이 판매된 상품의 이름을 찾는 쿼리를 작성해주세요!
- SELECT p.name
FROM orders AS o JOIN products AS p
ON o.product_id = p.id
GROUP BY p.name
ORDER BY SUM(o.quantity) DESC
LIMIT 1;
- SELECT p.name
- 각 상품 ID별로 평균 주문 수량을 계산하는 쿼리를 작성해주세요!
- SELECT p.id, AVG(o.quantity)
FROM products AS p LEFT JOIN orders AS o
ON o.product_id = p.id
GROUP BY p.id;
- SELECT p.id, AVG(o.quantity)
- 판매되지 않은 상품의 ID와 이름을 찾는 쿼리를 작성해주세요!
- SELECT p.id, p.name
FROM products AS p LEFT JOIN orders AS o
ON o.proddct_id = p.id
WHERE o.id IS NULL;
- SELECT p.id, p.name
'내일배움캠프 Node.js 7기' 카테고리의 다른 글
실습1 KPT (0) | 2024.11.01 |
---|---|
JavaScript 톺아보기 (2) | 2024.10.14 |
SQL문법 연습하기 10. 이젠 테이블이 2개입니다 (0) | 2024.10.11 |
SQL문법 연습하기 9. 아프면 안됩니다! 항상 건강 챙기세요! (0) | 2024.10.10 |
SQL문법 연습하기 8. LOL을 하다가 홧병이 나서 병원을 찾아왔습니다. (0) | 2024.10.10 |