데이터 노트

[Redshift] 연산 오류 | 자동 정수 변환 본문

Data Engineering/DB

[Redshift] 연산 오류 | 자동 정수 변환

돌돌찐 2024. 4. 13. 13:29

단순 계산이긴 한데, 자꾸 오류가 나서

내가 기존 데이터를 잘못 묶었나..

혹은 레드시프트는 연산할 때 뭐가 다른 건가 계속 찾아봤다.

 

복잡하게 데이터를 짠 것도 아닌데 시간이 걸려서 스트레스 였지만..^^

원인은 실수인 결과값을 자동으로 정수 처리해 주는 것 때문에 원하는 결과가 나오지 않는 것이었다.

 

-- 최종 연산을 위한 쿼리
SELECT (sum(a) / count(b)) * 100 
FROM ...


sum(a)의 값은 14 , count(b)의 값은 205 였고,

0.06829... * 100의 값이 6.829 ... 로 나와야하는데 계속 0이 출력됐다.

 

ROUND 처리 다 해줬으나 그게 답이 아니었음

 

결과론적으론 실수형으로 변환해주고, ROUND로 원하는 자릿수까지 설정해서

원하는 값을 얻었다.

(ROUND 처리는 필수 아님)

 

ROUND(CAST(SUM(a) AS FLOAT) / CAST(COUNT(b) AS FLOAT)) * 100​