데이터 공부/SQL
ROUND와 CEIL의 차이점
민몽
2025. 4. 9. 16:09
서론
SQL에서 숫자를 반올림하거나 올림해야 할 때, 보통 ROUND와 CEIL을 사용합니다. 최근 쿼리 문제를 풀다가 ROUND(숫자, 0)과 CEIL(숫자)을 사용했을 때 결과가 다르게 나오는 것을 발견했습니다. 이에 대해 정확한 차이점을 이해하고자 이 글을 작성하게 되었습니다.
본론
ROUND 함수란?
ROUND 함수는 숫자를 반올림하는 함수입니다. 기본적으로 다음과 같은 형식을 가집니다.
ROUND(숫자, 소수 자릿수)
- 소수 자릿수를 지정하면 해당 자릿수까지 반올림됩니다.
- 소수 자릿수를 0으로 설정하면 정수 단위로 반올림됩니다.
- 지정하지 않으면 기본적으로 0으로 처리됩니다.
예제
SELECT ROUND(4.3, 0); -- 결과: 4
SELECT ROUND(4.6, 0); -- 결과: 5
SELECT ROUND(4.567, 2); -- 결과: 4.57
SELECT ROUND(-4.5, 0); -- 결과: -4
SELECT ROUND(-4.6, 0); -- 결과: -5
CEIL 함수란?
CEIL(또는 CEILING) 함수는 주어진 숫자를 올림하여 정수로 반환하는 함수입니다. 즉, 소수점 이하 값이 존재하면 무조건 큰 정수로 변환됩니다.
예제
SELECT CEIL(4.3); -- 결과: 5
SELECT CEIL(4.6); -- 결과: 5
SELECT CEIL(-4.6); -- 결과: -4
SELECT CEIL(-4.5); -- 결과: -4
ROUND와 CEIL의 차이
함수 동작 방식
ROUND | 가장 가까운 정수로 반올림 |
CEIL | 무조건 큰 정수로 올림 |
차이점을 보여주는 예제
SELECT ROUND(-4.6, 0); -- 결과: -5
SELECT CEIL(-4.6); -- 결과: -4
- ROUND는 가장 가까운 정수로 반올림합니다.
- CEIL은 무조건 큰 정수로 변환하므로, 음수일 경우 올림된 값이 절댓값이 작아지는 방향으로 동작합니다.
요약
SQL에서 ROUND와 CEIL은 숫자를 처리하는 방식이 다릅니다.
- ROUND는 가장 가까운 정수로 반올림합니다.
- CEIL은 무조건 큰 정수로 올림합니다.
- 특히 음수에서 차이가 나타날 수 있으므로 주의해야 합니다.