[걷기반] SQL 문법 연습 11_마지막 연습 문제

2025. 1. 21. 20:16·내일배움캠프/사전캠프 과제

마지막 연습 문제! - 상품 & 주문 테이블

내가 틀린/놓친 부분은 빨간색으로 표시!

 

44.
모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!

나의 답 Select o.id, p.name
From orders o inner join products p on o.id=p.product_id;
정답 SELECT o.id, p.name FROM orders o JOIN products p ON o.product_id = p.id;
오답 노트 join은 기본적으로 inner join과 동일하다.
고민한 점 -

 

 

45.
총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!

나의 답 Select p.id,
 max(p.pirce * o.quantity) high_sales
From orders o inner join products p on o.id=p.product_id
Group by p.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;
오답 노트 나의 답은 상품별 최고 매출액을 구하는 쿼리이므로 틀렸다. 
총 매출의 합을 sum으로 구한 후, order by를 통해 최고 매출액 1개를 선택해야 한다.
고민한 점 -

 

 

46.
각 상품 ID별로 판매된 총 수량(quantity)을 계산하는 쿼리를 작성해주세요!

나의 답 Select p.id, sum(o.quantity) total_quantity
From products p inner join orders o on p.id=o.product_id
group by 1;
정답 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;
오답 노트 -
고민한 점 -

 

 

47.
2023년 3월 3일 이후에 주문된 모든 상품의 이름을 나열하는 쿼리를 작성해주세요!

나의 답 Select p.name
From orders o inner join products p on o.id=p.product_id
Where date(o.order_date) >'2023-03-03';
정답 SELECT p.name FROM products p INNER JOIN orders o ON p.id = o.product_id
WHERE o.order_date > '2023-03-03';
오답 노트 -
고민한 점 -



48.
가장 많이 판매된 상품의 이름을 찾는 쿼리를 작성해주세요!

나의 답 Select p.name
From orders o inner join products p on o.id=p.product_id
group by p.id
order by sum(o.quantity) desc limit 1;
정답 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;
오답 노트 -
고민한 점 -

 

 

49.
각 상품 ID별로 평균 주문 수량을 계산하는 쿼리를 작성해주세요!

나의 답 Select p.id,
 avg(o.quantity) avg_quantity
From orders o inner join products p on o.id=p.product_id
group by p.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;
오답 노트 -
고민한 점 -

 

 

50.
판매되지 않은 상품의 ID와 이름을 찾는 쿼리를 작성해주세요!

나의 답 Select p.id, p.name
From products p left join orders o on p.product_id=o.id
where o.quantity=null;
정답 SELECT p.id, p.name FROM products p LEFT JOIN orders o ON p.id = o.product_id
WHERE o.id IS NULL;
오답 노트 판매되지 않은 상품의 ID를 찾기 위해서는 quantity가 아닌 orders.id의 null값을 선택해야 한다.
고민한 점 -

 

'내일배움캠프 > 사전캠프 과제' 카테고리의 다른 글

[달리기반] SQL 문법 연습 2  (0) 2025.01.23
[달리기반] SQL 문법 연습 1  (0) 2025.01.23
[걷기반] SQL 문법 연습 10  (0) 2025.01.21
[걷기반] SQL 문법 연습 9  (0) 2025.01.21
[걷기반] SQL 문법 연습 8  (0) 2025.01.21
'내일배움캠프/사전캠프 과제' 카테고리의 다른 글
  • [달리기반] SQL 문법 연습 2
  • [달리기반] SQL 문법 연습 1
  • [걷기반] SQL 문법 연습 10
  • [걷기반] SQL 문법 연습 9
aggeeeee
aggeeeee
  φ(..;) 🔜 \_へ(▭-▭)✨
  • aggeeeee
    🥔 님의 블로그
    aggeeeee
    • 분류 전체보기 (155) N
      • Today I Learned (25)
      • 내일배움캠프 (115) N
        • 본캠프 과제 (17)
        • 사전캠프 과제 (23)
        • SQL 코드카타 (44)
        • 알고리즘 코드카타 (31) N
      • 💻🚀 (15)
        • Java (7)
        • Git & GitHub (1)
        • CS (4)
        • Spring & SpringBoot (3)
  • 링크

  • 최근 글

  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.3
aggeeeee
[걷기반] SQL 문법 연습 11_마지막 연습 문제
상단으로

티스토리툴바