22012: division_by_zero
PostgreSQL의미
산술 표현식이 0으로 나누기(또는 나머지 연산)를 시도했다. PostgreSQL은 0으로 나누기를 허용하지 않으며 쿼리를 중단한다.
원인
제수 컬럼/표현식이 0으로 평가됨. 비율/백분율 계산에서 분모가 0. 0인 COUNT 또는 SUM으로 나눔. 필터링되지 않은 데이터의 예상치 못한 0 값.
해결 방법
분모가 0일 때 NULL을 반환하도록 NULLIF를 사용한다: numerator / NULLIF(denominator, 0). 원하면 COALESCE로 결과를 기본값으로 바꾼다: COALESCE(numerator / NULLIF(denominator,0), 0). 또는 CASE WHEN denominator = 0 THEN NULL ELSE numerator/denominator END를 사용한다. 데이터에서 0인 경우를 미리 필터링한다.