데이터가 많은 테이블의 건 수를 조회하려고 할 때

SQL0802N
Arithmetic overflow or other arithmetic exception occurred.
산술 오버플로우 또는 다른 산술 예외가 발생했습니다.


위와 같은 오류가 발생할 수 있다.


이는, MAX_LONGINT_INT 제약 (2,147,483,647) 보다 더 많은 건 수를 담고 있는 테이블에

SELECT COUNT 문을 수행했을 경우 발생하며


이 때는 COUNT_BIG 함수를 사용하면 정상적으로 수행할 수 있다.


select count_big(*) from HUGE_TABLE;


한편, INT 타입의 컬럼을 SUM 하다보면 INT 타입의 크기 제약으로 인해 산술 오버플로우가 발생할 경우도 있는데

이런 경우에는 CAST를 해서 SUM 하면 된다.

 

select SUM(CAST(col1 as BIGINT)) from TABLE;

select SUM(CONVERT(bigint, col1)) from TABLE;

Posted by in0de
,