다음 상황에서 GROUP BY를 사용한 쿼리의 결과를 예측해보세요.

데이터:
⦁ Or

과목: MySQL

문제 번호: 3165

hard
다음 상황에서 GROUP BY를 사용한 쿼리의 결과를 예측해보세요.

데이터:
⦁ Orders 테이블: OrderID 1,2,3 (ShipperID: 1,1,2)
⦁ Shippers 테이블: ShipperID 1,2,3 (ShipperName: Express, Package, Shipping)
SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders  
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY Shippers.ShipperName;
A. 3개 행이 반환되고, Shipping은 0개 주문을 가집니다
B. 2개 행이 반환되고, Express는 2개, Package는 1개 주문을 가집니다
C. 3개 행이 반환되고, 모든 배송업체가 최소 1개씩 주문을 가집니다
D. 1개 행만 반환되고, 전체 주문 수가 표시됩니다

정답: B



⦁ JOIN 결과 분석:
⦁ OrderID 1 (ShipperID 1) → Express와 매칭
⦁ OrderID 2 (ShipperID 1) → Express와 매칭
⦁ OrderID 3 (ShipperID 2) → Package와 매칭
⦁ Shipping (ShipperID 3)은 주문이 없어 LEFT JOIN 결과에 포함되지 않음

⦁ GROUP BY 처리:
⦁ Express 그룹: COUNT(Orders.OrderID) = 2
⦁ Package 그룹: COUNT(Orders.OrderID) = 1

⦁ 주의사항: LEFT JOIN이 Orders 기준이므로 주문이 없는 Shipping은 결과에 나타나지 않습니다

⦁ 만약 모든 배송업체를 포함하려면 RIGHT JOIN을 사용해야 합니다

💡 학습 팁

이 문제를 포함한 MySQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.