티스토리 뷰

반응형
  • Outer Join 사용시 Inner Table의 숫자 컬럼을 sum() 할 때  null 값에 주의해야 합니다.

 


SELECT T1.ORDER_ID
      ,SUM(T2.PRDT_PRICE)
FROM T_ORDER T1 LEFT JOIN T_ORDER_DETAIL T2 ON (T1.ORDER_ID = T2.ORDER_ID)
GROUP BY T1.ORDER_ID
;


SELECT T1.ORDER_ID
      ,SUM(COALESCE(T2.PRDT_PRICE,0))
FROM T_ORDER T1 LEFT JOIN T_ORDER_DETAIL T2 ON (T1.ORDER_ID = T2.ORDER_ID)
GROUP BY T1.ORDER_ID

 

일반적으로 SUM()이나 COUNT()함수는 null 값이 있으면, 그 row는 skip하는 데, MariaDB ColumnStore에서는 Inner Table

값에 null이 있으면 0이 되어 버립니다.

InnoDB엔진으로 생성한 테이블 조회시에는 타 RDMS처럼 0이 되지 않습니다.

 

반응형