이 글에서는 SQL Server의 ROUND() 함수를 문법과 다양한 예제와 함께 자세히 설명하여, 함수의 동작 원리를 쉽게 이해하고 실무에서 바로 활용할 수 있도록 안내합니다.
함수 개요
SQL Server의 ROUND 함수는 숫자를 지정한 소수점 자리까지 반올림하는 데 사용됩니다. 데이터 분석이나 보고서 작성 시 숫자 값을 원하는 정밀도로 표현해야 할 때 매우 유용하게 활용됩니다.
기본 문법
SQL Server에서 ROUND 함수를 사용하는 기본 문법은 다음과 같습니다.
ROUND(number, decimal, operation)
매개변수 설명:
- number: 반올림할 대상 숫자입니다.
- decimal: 반올림할 소수점 자릿수입니다. 양수 또는 음수의 정수를 사용할 수 있습니다. 이 매개변수를 생략하면 소수점 0자리, 즉 정수 단위로 반올림됩니다.
- operation: 선택적 매개변수로, 임의의 숫자 값을 지정할 수 있습니다. 값이 0이거나 생략되면 결과가 반올림되며, 0이 아닌 값이면 결과가 절사(버림) 처리됩니다.
반올림 원칙
숫자를 반올림할 때 시스템은 (decimal + 1)번째 자리의 숫자를 기준으로 판단합니다.
- 해당 자리의 숫자가 5 이상이면, decimal 위치의 숫자에 1을 더하고 그 뒤의 숫자들은 모두 0이 됩니다.
- 해당 자리의 숫자가 5 미만이면, decimal 위치의 숫자는 그대로 유지되고 뒤의 숫자들은 0이 됩니다.
예를 들어 소수 423.3241을 각각 다른 자릿수로 반올림하면 다음과 같은 결과를 얻습니다.
- SELECT ROUND(423.3241, -2) → 결과: 400.0000
- SELECT ROUND(423.3241, -1) → 결과: 420.0000
- SELECT ROUND(423.3241, 0) → 결과: 423.0000
- SELECT ROUND(423.3241, 1) → 결과: 423.3000
- SELECT ROUND(423.3241, 2) → 결과: 423.3200
- SELECT ROUND(423.3241, 3) → 결과: 423.3240
- SELECT ROUND(423.3241, 4) → 결과: 423.3241
참고 사항:
- 반올림 관련 처리에는 CEILING 함수와 FLOOR 함수도 함께 참고하면 좋습니다.
- ROUND 함수는 SQL Server 2017, 2016, 2014, 2012, 2008 R2, 2008, 2005 등 다양한 버전에서 사용할 수 있습니다.
실전 예제
이제 SQL Server에서 ROUND 함수가 실제로 어떻게 동작하는지 몇 가지 예제를 통해 살펴보겠습니다.
예제 1: 숫자 직접 반올림하기
SELECT ROUND(125.315, 2);
-- 결과: 125.320 (세 번째 매개변수가 생략되어 반올림됨)
SELECT ROUND(125.315, 2, 0);
-- 결과: 125.320 (세 번째 매개변수가 0이므로 반올림됨)
SELECT ROUND(125.315, 2, 1);
-- 결과: 125.310 (세 번째 매개변수가 0이 아니므로 절사됨)
SELECT ROUND(125.315, 1);
-- 결과: 125.300 (소수점 첫째 자리까지 반올림)
SELECT ROUND(125.315, 0);
-- 결과: 125.000 (정수 단위로 반올림)
SELECT ROUND(125.315, -1);
-- 결과: 130.000 (십의 자리로 반올림)
SELECT ROUND(125.315, -2);
-- 결과: 100.000 (백의 자리로 반올림)
예제 2: 테이블 데이터에 적용하기
다음과 같은 데이터 테이블이 있다고 가정해 보겠습니다.
1. 하위 카테고리와 비율 조회 후 소수점 둘째 자리까지 반올림
SELECT Chuyenmuccon, ROUND(Tyle, 2) AS Tylemoi
FROM Quantrimang;
-- 결과:
Chuyenmuccon Tylemoi
SQL Server 74.63
Facebook 58.99
Python 36.22
JavaScript 42.68
Google Chrome 94.88
Instagram 82.16
2. 프로그래밍 분야의 비율을 정수 단위로 반올림하여 조회
SELECT Chuyenmuccon, ROUND(Tyle, 0) AS Tylemoi
FROM Quantrimang
WHERE Chuyenmuclon = 'Lap trinh';
-- 결과:
Chuyenmuccon Tylemoi
SQL Server 75
Python 36
JavaScript 43
이처럼 ROUND 함수는 세 번째 매개변수의 사용 여부에 따라 반올림 또는 절사 동작을 선택할 수 있어, 보고서나 통계 데이터를 원하는 형태로 깔끔하게 정리할 때 매우 유용합니다.