구루비 회원님들 안녕하세요.
최근 통계쿼리를 만들고 있는데 약간(?)의 의문점이 생겨 문의드립니다.
쿼리는 간단하지만 값이 다르게나와 문의드립니다.
*테이블정보*
주문테이블( order Table )
name | commssion | price |
사과 | 10 | 1000 |
사과 | 10 | 1000 |
토마토 | 4 | 100 |
사과 | 10 | 1000 |
저는 상품 별 총 판매금액과 판매수수료를 구하고싶어 다음과 같이 쿼리를 만들었습니다.
[1].
SELECT o.name as '상품명', SUM(price) as '판매금액', SUM(price/100*commssion) as '판매수수료' FROM ORDER o GROUP BY o.name;
[2].
SELECT
o.name as '상품명',
SUM(price) as '판매금액',
SUM(price/100*10) as '판매수수료'
FROM ORDER o
GROUP BY o.name;
Q.1) [1], [2]은 결과값이 근소하게 다릅니다. ( 소수점 차이로요... )
DB에서 commssion데이터를 가져오는 값과 직접 10으로 입력하는 것의 결과값이 다릅니다.!!!!
( 같은 10인데 값이 달라요!!! 0.000000002 차이가 납니다. )
왜 자꾸 값이 차이가 날까 생각을 하다가 commssion의 타입에 대한 의문을 갖게 되었습니다.
commssion의 타입은 'float'입니다.
혹시, float를 사용했기때문에 소수점차이가 나는건가요?
어떤 통계치를 구하기위해서는 float/double 대신 'decimal'을 사용해야하나요?
감사합니다.