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