SQL - 문제 미리보기

문제 1662

hard
다음 중 FULL OUTER JOIN을 사용하는 것이 가장 적절한 상황은?
A. 주문한 고객의 정보만 조회할 때
B. 모든 고객의 주문 현황을 파악할 때
C. 두 시스템 간 데이터 동기화 상태를 전체적으로 점검할 때
D. 최고 매출 고객 TOP 10을 조회할 때

정답: C

FULL OUTER JOIN의 최적 활용 시나리오: • 데이터 동기화: 두 시스템 간 완전한 데이터 비교 • 무결성 검사: 모든 불일치 및 누락 데이터 확인 • 마이그레이션: 기존 시스템과 신규 시스템 간 데이터 검증 • 감사(Audit): 전체 데이터 상태 종합 점검 각 선택지 분석: 1번 (주문한 고객 정보) - INNER JOIN 적절: ```sql -- INNER JOIN으로 충분 SELECT c.CustomerName, o.OrderID FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID; ``` 2번 (모든 고객 주문 현황) - LEFT JOIN 적절: ```sql -- LEFT JOIN으로 충분 SELECT c.CustomerName, COUNT(o.OrderID) AS OrderCount FROM Customers c LEFT JOIN Orders o ON c.CustomerID = o.CustomerID GROUP BY c.CustomerID, c.CustomerName; ``` 3번 (데이터 동기화 점검) - FULL OUTER JOIN 최적: ```sql -- 시스템 A와 시스템 B 간 고객 데이터 동기화 검사 SELECT COALESCE(a.customer_id, b.customer_id) AS customer_id, a.customer_name AS system_a_name, b.customer_name AS system_b_name, CASE WHEN a.customer_id IS NULL THEN 'Missing in System A' WHEN b.customer_id IS NULL THEN 'Missing in System B' WHEN a.customer_name <> b.customer_name THEN 'Name Mismatch' ELSE 'Synchronized' END AS sync_status FROM system_a_customers a FULL OUTER JOIN system_b_customers b ON a.customer_id = b.customer_id; ``` 4번 (매출 TOP 10) - 집계 쿼리 적절: ```sql -- GROUP BY와 ORDER BY로 해결 SELECT c.CustomerName, SUM(o.Amount) AS TotalSales FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID GROUP BY c.CustomerID, c.CustomerName ORDER BY TotalSales DESC LIMIT 10; ```

💡 학습 팁

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