Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 쿼리에서 백분율 계산 후 결과 반올림하기

MySQL 쿼리에서 백분율 계산 후 결과 반올림하기

MySQL에서 두 값의 비율을 백분율(%) 형태로 표시하고 싶다면 CONCAT() 함수와 ROUND() 함수를 함께 사용하면 됩니다. ROUND()로 계산 결과를 원하는 자릿수까지 반올림한 뒤, CONCAT()으로 '%' 기호를 붙여주는 방식입니다.

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1844
    (
    Number int,
    TotalNumber int
    );
Query OK, 0 rows affected (0.00 sec)

INSERT 명령을 사용해 몇 개의 레코드를 삽입합니다.

mysql> insert into DemoTable1844 values(50,500);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1844 values(80,500);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1844 values(98,500);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1844 values(45,500);
Query OK, 1 row affected (0.00 sec)

SELECT 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select * from DemoTable1844;

실행 결과는 다음과 같습니다.

+--------+-------------+
| Number | TotalNumber |
+--------+-------------+
|     50 |         500 |
|     80 |         500 |
|     98 |         500 |
|     45 |         500 |
+--------+-------------+
4 rows in set (0.00 sec)

백분율 계산 및 반올림 쿼리

이제 Number 값을 TotalNumber로 나눈 뒤 100을 곱해 백분율을 구하고, 소수점 둘째 자리까지 반올림하여 '%' 기호와 함께 출력하는 쿼리입니다.

mysql> select concat(round(((Number / TotalNumber) * 100 ),2), '%') as Result from DemoTable1844;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+--------+
| Result |
+--------+
| 10.00% |
| 16.00% |
| 19.60% |
| 9.00%  |
+--------+
4 rows in set (0.00 sec)

쿼리 동작 방식 설명

  • (Number / TotalNumber) * 100: 비율에 100을 곱해 백분율 수치를 계산합니다.
  • ROUND(..., 2): 계산된 값을 소수점 둘째 자리까지 반올림합니다. 필요에 따라 자릿수를 조절할 수 있습니다.
  • CONCAT(..., '%'): 반올림된 숫자 뒤에 '%' 문자열을 연결해 최종 결과를 만듭니다.

이처럼 CONCAT()과 ROUND()만 활용하면 별도의 애플리케이션 로직 없이 MySQL 쿼리 안에서 바로 백분율을 깔끔하게 출력할 수 있습니다.