[TIL] JOIN

NayeonKim·2025년 5월 2일

[TIL] 한땀한땀 SQL

목록 보기
3/4

Today I learned 💭

  • JOIN
  • 목적: 두개의 테이블 연결 해 줌
  • 문법: 테이블 AS t1 JOIN 테이블 AS t2 On t1.컬럼 = t2.컬럼
  • LEFT JOIN, RIGHT JOIN, INNER JOIN 있고, 현업에서는 주로 LEFT JOIN
  • 오늘의 쿼리 공부
    1. 모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!

      SELECT o.id
      			,p.name
      FROM product AS p
      		 LEFT JOIN orders AS o 
      		 ON p. id = o.product_id 
    2. 총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!

      SELECT p.id
      			,SUM(o.quantity * p.price) AS total_sales
      FROM product AS p
      		 LEFT JOIN orders AS o 
      		 ON p. id = o.product_id 
      GROUP BY p.id
      ORDER BY total_sales DESC
      LIMIT 1
    3. 각 상품 ID별로 판매된 총 수량(quantity)을 계산하는 쿼리를 작성해주세요!

      SELECT p.id
      			,SUM(o.quantity) AS total_quantity
      FROM product AS p
      		 LEFT JOIN orders AS o 
      		 ON p. id = o.product_id 
      GROUP BY p.id
    4. 2023년 3월 3일 이후에 주문된 모든 상품의 이름을 나열하는 쿼리를 작성해주세요!

      SELECT p.name
      FROM product AS p
      		 LEFT JOIN orders AS o 
      		 ON p. id = o.product_id 
      WHERE o.order_date >= '2023-03-03'
    5. 가장 많이 판매된 상품의 이름을 찾는 쿼리를 작성해주세요!

      SELECT p.name
      			,SUM(o.quantity) AS total_quantity
      FROM product AS p
      		 LEFT JOIN orders AS o 
      		 ON p. id = o.product_id 
      GROUP BY p.id
      ORDER BY total_quantity
      LIMIT 1
    6. 각 상품 ID별로 평균 주문 수량을 계산하는 쿼리를 작성해주세요!

      SELECT p.id
      			,AVG(o.quantity) AS avg_quantity
      FROM product AS p
      		 LEFT JOIN orders AS o 
      		 ON p. id = o.product_id 
      GROUP BY p.id
    7. 판매되지 않은 상품의 ID와 이름을 찾는 쿼리를 작성해주세요!

      SELECT p.id
      			,p.name
      FROM product AS p
      		 LEFT JOIN orders AS o 
      		 ON p. id = o.product_id 
      WHERE o.product_id IS NULL
profile
그로스마케터 성장일지 🐕

0개의 댓글