MySQL에서 저장된 점수(Marks) 데이터를 기반으로 백분율을 계산하는 방법을 소개합니다. 핵심 아이디어는 SUM() 함수로 점수의 총합을 구하고, COUNT(*) 함수로 레코드 수를 나누어 평균값을 얻은 뒤, CONCAT() 함수로 백분율 기호(%)를 붙여 출력하는 것입니다.
1. 테이블 생성하기
먼저 점수를 저장할 테이블을 생성합니다.
mysql> create table DemoTable1398
-> (
-> Marks int
-> );
Query OK, 0 rows affected (0.50 sec)
2. 샘플 데이터 삽입하기
INSERT 문을 사용하여 테이블에 점수 데이터를 입력합니다.
mysql> insert into DemoTable1398 values(78);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1398 values(82);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1398 values(90);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1398 values(98);
Query OK, 1 row affected (0.12 sec)
3. 저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select * from DemoTable1398;
위 쿼리는 다음과 같은 결과를 출력합니다.
+-------+
| Marks |
+-------+
| 78 |
| 82 |
| 90 |
| 98 |
+-------+
4 rows in set (0.00 sec)
4. 백분율 계산 쿼리 실행하기
점수의 백분율(평균)을 구하는 쿼리는 다음과 같습니다.
mysql> select concat(sum(Marks)/count(*),'%') from DemoTable1398;
실행 결과는 아래와 같습니다.
+---------------------------------+
| concat(sum(Marks)/count(*),'%') |
+---------------------------------+
| 87.0000% |
+---------------------------------+
1 row in set (0.00 sec)
추가 팁: 소수점 자릿수 정리하기
결과가 87.0000%처럼 불필요한 소수 자릿수까지 표시될 수 있습니다. 이 경우 ROUND() 또는 FORMAT() 함수를 함께 사용하면 더 깔끔한 결과를 얻을 수 있습니다.
mysql> select concat(round(sum(Marks)/count(*), 2), '%') from DemoTable1398;
이렇게 하면 87.00% 형태로 출력되어 가독성이 크게 향상됩니다. SUM()과 COUNT()를 조합한 이 패턴은 성적 평균뿐만 아니라 다양한 통계 계산에도 응용할 수 있습니다.