반올림과 버림
ROUND, CEIL, FLOOR와 TRUNC를 알아봅니다.
반올림과 버림은(는) CoddyKit의 무료 SQL Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 SQL Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. SQL Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
반올림이 중요한 이유
SQL에서 숫자를 다룰 때 소수 자릿수가 많은 결과를 자주 만나게 됩니다. 예를 들어 10을 3으로 나누면 3.3333333...이 됩니다.
SQL에는 표시하거나 저장할 소수 자릿수를 제어할 수 있는 기본 제공 함수가 있습니다. 바로 ROUND, CEIL, FLOOR, TRUNC입니다. 이러한 함수는 깔끔한 재무 수치, 측정값, 통계값을 표현하는 데 필수적입니다.
SELECT 10.0 / 3.0 AS raw_result;ROUND: 기본 사용법
ROUND() 함수는 숫자를 지정한 소수 자릿수로 반올림합니다. 표준 반올림 규칙을 따르므로 5 이상인 숫자는 올림하고 5 미만인 숫자는 버림합니다.
구문은 ROUND(number, decimal_places)입니다. 두 번째 인수를 생략하면 가장 가까운 정수로 반올림합니다.
SELECT
ROUND(3.14159, 2) AS two_decimals,
ROUND(3.14159, 0) AS zero_decimals,
ROUND(3.14159) AS no_arg;음수 자릿수를 사용하는 ROUND
ROUND()의 잘 알려지지 않은 기능 중 하나는 두 번째 인수로 음수를 전달할 수 있다는 점입니다. 이렇게 하면 소수점 왼쪽을 기준으로 반올림하므로 가장 가까운 십, 백, 천 단위로 반올림할 때 유용합니다.
예를 들어 ROUND(1567, -2)는 가장 가까운 백 단위로 반올림하여 1600을 반환합니다.
SELECT
ROUND(1567.89, -1) AS nearest_ten,
ROUND(1567.89, -2) AS nearest_hundred,
ROUND(1567.89, -3) AS nearest_thousand;CEIL: 항상 올림하기
CEIL()은 일부 데이터베이스에서 CEILING()으로도 표기되며, 소수 부분과 관계없이 숫자를 항상 가장 가까운 정수로 올림합니다.
최솟값보다 작아지지 않도록 해야 할 때 유용합니다. 예를 들어 결과 집합을 표시하는 데 필요한 페이지 수를 계산할 때 사용할 수 있습니다.
SELECT
CEIL(4.1) AS ceil_4_1,
CEIL(4.9) AS ceil_4_9,
CEIL(-4.1) AS ceil_neg_4_1,
CEIL(-4.9) AS ceil_neg_4_9;FLOOR: 항상 내림하기
FLOOR()는 소수 부분과 관계없이 숫자를 항상 가장 가까운 정수로 내림합니다.
음수에서는 FLOOR가 0에서 멀어지는 방향으로 내림한다는 점에 주의하세요. FLOOR(-4.1)은 -4가 아니라 -5를 반환합니다. 이는 일부 초보자가 예상하는 동작과 반대입니다.
SELECT
FLOOR(4.9) AS floor_4_9,
FLOOR(4.1) AS floor_4_1,
FLOOR(-4.1) AS floor_neg_4_1,
FLOOR(-4.9) AS floor_neg_4_9;CEIL과 FLOOR 나란히 비교하기
CEIL과 FLOOR을 함께 보면 둘의 차이를 쉽게 이해할 수 있습니다. CEIL은 항상 다음 정수로 올라가고, FLOOR는 항상 아래쪽 정수로 내려갑니다.
건물을 떠올려 보세요. FLOOR는 내려가게 되는 지면이고, CEIL은 올라가 닿게 되는 천장입니다.
SELECT
2.3 AS original,
CEIL(2.3) AS ceil_result,
FLOOR(2.3) AS floor_result
UNION ALL
SELECT
7.8,
CEIL(7.8),
FLOOR(7.8);TRUNC: 반올림 없이 자르기
TRUNC()는 소수 자릿수를 반올림하지 않고 제거합니다. MySQL에서는 TRUNCATE()로도 사용할 수 있습니다. 지정한 위치 뒤의 숫자를 단순히 잘라 냅니다.
이는 ROUND와 다릅니다. TRUNC(4.9)는 5가 아니라 4를 반환합니다. 소수 부분은 그대로 버려집니다.
SELECT
TRUNC(4.9) AS trunc_4_9,
TRUNC(4.1) AS trunc_4_1,
TRUNC(-4.9) AS trunc_neg_4_9,
TRUNC(3.14159, 3) AS trunc_3_decimals;ROUND와 TRUNC 비교
ROUND와 TRUNC의 핵심적인 차이는 다음과 같습니다. ROUND는 다음 숫자에 따라 값을 변경하지만, TRUNC는 조정 없이 자른 지점 뒤의 모든 값을 항상 버립니다.
수학적으로 가장 가까운 값을 원한다면 ROUND를 사용하세요. 값을 올리지 않고 정밀도만 엄격하게 제거하려면 TRUNC를 사용하세요. 특히 초과 지급을 절대 해서는 안 되는 재무 계산에서 자주 사용됩니다.
SELECT
ROUND(2.567, 1) AS rounded,
TRUNC(2.567, 1) AS truncated;
-- ROUND gives 2.6 (5 rounds up)
-- TRUNC gives 2.5 (just cuts off)실제 테이블에서 ROUND 사용하기
반올림 함수는 테이블 열에 적용할 때 가장 강력합니다. 여기서는 가격이 포함된 간단한 상품 테이블을 만들고 ROUND를 적용해 값을 깔끔하게 표시합니다.
이 패턴은 원시 계산에서 소수 자릿수가 많이 생성되는 전자 상거래 및 회계 쿼리에서 매우 흔합니다.
CREATE TABLE products (
name TEXT,
price NUMERIC
);
INSERT INTO products VALUES
('Widget', 9.999),
('Gadget', 24.3333),
('Doohickey', 4.5678);
SELECT name, ROUND(price, 2) AS display_price
FROM products;쿼리에서 함수 조합하기
반올림 함수를 다른 SQL 표현식과 조합할 수 있습니다. 예를 들어 할인된 가격을 계산한 다음 표시를 위해 반올림할 수 있습니다.
이 쿼리는 15% 할인을 적용하고 결과를 소수 둘째 자리까지 반올림합니다. 또한 할인된 가격의 FLOOR와 CEIL도 표시하여 최소 및 최대 정수 가격을 함께 제공합니다.
SELECT
name,
price,
ROUND(price * 0.85, 2) AS discounted,
FLOOR(price * 0.85) AS min_price,
CEIL(price * 0.85) AS max_price
FROM products;CEIL로 페이지 수 계산하기
CEIL의 대표적인 사용 사례는 페이지 매김 시스템에서 전체 페이지 수를 계산하는 것입니다. 행이 97개이고 페이지당 10개를 표시한다면 CEIL(97 / 10.0) = 10페이지가 필요합니다. 마지막 페이지에도 행이 7개 있으므로 9페이지가 아닙니다.
CEIL이 나머지에 적용되기 전에 나머지가 버려지는 정수 나눗셈을 피하려면 항상 소수로 나누세요(10이 아니라 10.0).
SELECT
97 AS total_rows,
10 AS rows_per_page,
CEIL(97 / 10.0) AS total_pages;빠른 확인
SQL 반올림 함수에 대한 이해도를 확인해 보세요.
레슨 복습
잘하셨습니다! 다음은 SQL의 반올림 및 버림 함수에 대한 요약입니다.
- ROUND(n, d) — 표준 수학 규칙에 따라 소수점 이하 d자리까지 반올림합니다(5 이상은 올림).
- CEIL(n) — 항상 가장 가까운 정수로 올림합니다.
- FLOOR(n) — 항상 가장 가까운 정수로 내림합니다.
- TRUNC(n, d) — 반올림하지 않고 d번째 위치 뒤의 숫자를 제거하므로 값을 증가시키지 않습니다.
표시와 통계에는 ROUND를, 페이지 수와 같은 최소 용량 계산에는 CEIL을, 최대로 들어가는 수를 계산할 때는 FLOOR를 사용하세요. 절대로 올림하면 안 되는 경우, 특히 재무 관련 상황에서는 TRUNC를 사용하세요.
자주 묻는 질문
“반올림과 버림” 강의는 무료인가요?
네 — “반올림과 버림” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 SQL Academy 강의 전체를 잠금 해제할 수 있습니다. SQL Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“반올림과 버림”에서 뭘 배우나요?
ROUND, CEIL, FLOOR와 TRUNC를 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 SQL Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
SQL Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 SQL Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“반올림과 버림” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 SQL Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 SQL Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.