SQL 집계 함수를 사용할 때 NULL 항목이 포함됩니다.

조회수 575회
INSERT INTO customers (customer_id, customer_name, age, ranking, job, savings)
VALUES ('apple', '홍길동', 20, 'gold', '학생', 1000),
       ('banana', '김철수', 25, 'vip', '간호사', 2500),
       ('carrot', '박영희', 28, 'gold', '교사', 4500),
       ('orange', '최용욱', 22, 'silver', '학생', 0),
       ('melon', '성원용', 35, 'gold', '회사원', 5000),
       ('peach', '오형준', NULL, 'silver', '의사', 300),
       ('pear', '채광주', 31, 'silver', '회사원', 500);

어떤 데이터베이스에 이러한 테이블을 생성했습니다. 보시다시피 customer_id 컬럼의 값이 'peach'인 튜플의 age 컬럼 값은 NULL입니다.

여기서 모든 튜플의 age 값의 총계를 구하려고 다음과 같은 SQL문을 입력했는데요.

SELECT COALESCE(SUM(age), 0) FROM customers;
> 185

20+25+28+22+35+31=161이 되어야 하는데, 알 수 없는 값 24가 추가되어 185가 출력되었습니다.

NULL 값이 있으면 0으로 치환하도록 COALESCE() 함수도 추가했는데 이런 결과가 나오네요. 어떻게 해야 정상적인 합을 구할 수 있을지 궁금합니다...

사용 중인 DBMS는 MariaDB입니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 상기와 유사한 질문시에는 http://www.sqlfiddle.com 이런 사이트를 활용해주면 더 확실한 답변을 얻을 수 있습니다. 정영훈 2019.4.23 19:56

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)