Oracle remainder 함수 아시는 분 계신가요? 0 6 9,675

by 임상준 [SQL Query] oracle remainder [2014.03.05 18:13:12]


안녕하세요.

오라클 remainder 함수 써보신 분이나 정확하게 알고 계시는 분들께 도움 구합니다.

remainder 함수가 나머지 값을 구하는건데 mod 와는 다르게 몫을 round로 계산한다고 메뉴얼에 나와 있는 것 같습니다;

예를들어 5/3 의 경우 round(5/3) 은 2이고,
몫이 2 이므로 나머지는 -1 이라 remainder(5,3) 의 값은 -1 이 되는 것 같습니다.

근데 remainder(5,2) 나 그 배수들...remainder(10,4), remainder(15, 6) 의 경우는 계산 시 round 처리가 안되는 것 같더라구요.

round(5/2) 하면 몫이 3이 되므로 -1 이 나머지로 나와야 되는데 1로 나옵니다...

혹시 제가 개념을 잘못 알고 있는건지 아시는 분은 답변 부탁드려요..

감사합니다.

by DarkBee [2014.03.05 18:22:55]
알아본 결과로는

2.5 는 가장 가까운 정수로 2를 SET 하네요

3.5 도 가장 가까운 정수로 3을 SET

3.6은 가장 가까운 정수 4 SET


by DarkBee [2014.03.05 18:24:18]
계산식은

m - (n * round((m/n) - 0.1)) 이게 맞는듯

by 임상준 [2014.03.05 18:37:13]
remainder(9,6) 의 경우는 다른데요...음...

by DarkBee [2014.03.05 18:41:38]
ㅋㅋ 조금더 테스트 해보고 적어보께요

by 마농 [2014.03.06 09:45:31]
결과를 분석해본 결과...
나누기의 결과가 0.5, 1.5, 2.5, 3.5 등등 .5 로 끝나는 수의 경우에
앞의 정수부가 짝수인 경우(0.5, 2.5, 4.5, ...) 는 몫이 0, 2, 4 가 되어 나머지가 양수가 되고
앞의 정수부가 홀수인 경우(1.5, 3.5, 5.5, ...) 는 몫이 2, 4, 6 이 되어 나머지가 음수가 되네

by 임상준 [2014.03.06 13:06:16]

글쿤요...감사합니다
저게 무슨 의미인지 몰겠네요;; 어디다 쓰라고 만든걸지..

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입