SQL 개발자 (SQLD) / 01 데이터모델링
일대다 관계인 주문과 주문상세를 조인한 뒤 주문금액을 합계했더니 실제보다 큰 값이 나왔습니다. 원인으로 가장 적절한 것은?
- 정규화가 되어 있지 않아 중복 컬럼이 합산되었다
- 값이 없는 행이 0으로 치환되어 더해졌다
- 외부 조인을 사용해 없는 행이 추가되었다
- 조인 결과가 다 쪽의 행 수를 따르면서 부모의 값이 반복되었다
정답과 해설 보기
4. 조인 결과가 다 쪽의 행 수를 따르면서 부모의 값이 반복되었다
일대다 조인의 결과 행 수는 다 쪽을 따르므로 부모 쪽 금액이 자식 건수만큼 반복됩니다. 이 상태에서 그대로 합계하면 값이 부풀어 오릅니다. 부모 기준 금액은 부모 집합에서 먼저 집계하거나 중복을 제거한 뒤 더해야 합니다.
모던지가 직접 쓴 문항입니다. 시행기관과 관계가 없습니다.