MySQL에서 avg() 함수로 평균을 구하면 소수점 이하 자릿수가 길게 표시되는 경우가 많습니다. 이럴 때 round() 함수를 함께 사용하면 평균값을 원하는 자릿수로 반올림하여 깔끔한 정수 형태로 표시할 수 있습니다. 아래 예제를 통해 단계별로 살펴보겠습니다.
1. 샘플 테이블 생성
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable ( Score int ); Query OK, 0 rows affected (0.68 sec)
2. 데이터 삽입
insert 명령어를 사용해 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable values(98); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable values(97); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(91); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(86); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable values(45); Query OK, 1 row affected (0.12 sec)
3. 전체 레코드 조회
select 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
실행 결과는 다음과 같습니다.
+-------+ | Score | +-------+ | 98 | | 97 | | 91 | | 86 | | 45 | +-------+ 5 rows in set (0.00 sec)
4. 소수점 없이 평균값 계산하기
다음 쿼리는 avg()로 Score 열의 평균을 구한 뒤, round()를 적용해 소수점 없이 반올림된 결과를 표시합니다.
mysql> select round(avg(Score),0) AS Average from DemoTable;
실행 결과는 다음과 같습니다.
+---------+ | Average | +---------+ | 83 | +---------+ 1 row in set (0.00 sec)
핵심 함수 정리
avg()는 지정한 열의 산술 평균을 반환하는 집계 함수입니다. 위 예제에서 실제 평균은 83.4이지만, round(값, 자릿수)의 두 번째 인자를 0으로 설정하면 소수점 첫째 자리에서 반올림되어 83이라는 정수 형태의 결과를 얻을 수 있습니다. 만약 소수점 둘째 자리까지 표시하고 싶다면 round(avg(Score),2)처럼 자릿수를 조절하면 됩니다.