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

MySQL에서 TIME 열의 평균값 구하는 방법 완벽 가이드

MySQL TIME 열의 평균 구하기

MySQL에서 시간(TIME) 열의 평균값을 구하려면 SEC_TO_TIME() 함수와 TIME_TO_SEC() 함수를 함께 사용하면 됩니다. 이 방법을 사용하면 결과가 다시 시간 형식으로 반환되기 때문에 매우 편리합니다.

기본 문법은 다음과 같습니다.

SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(yourColumnName))) AS anyVariableName FROM yourTableName;

동작 원리

TIME_TO_SEC() 함수는 시간 값을 초 단위로 변환하고, AVG()로 초 단위의 평균을 계산한 뒤, SEC_TO_TIME()이 다시 'HH:MM:SS' 형식으로 변환해 줍니다. 시간 값은 숫자처럼 직접 평균을 낼 수 없기 때문에 이러한 변환 과정이 필요합니다.

예제 테이블 생성하기

개념을 이해하기 위해 먼저 테이블을 생성해 보겠습니다.

mysql> create table AverageOnTime
    -> (
    -> PunchInTime time
    -> );
Query OK, 0 rows affected (0.61 sec)

시간 데이터 삽입하기

INSERT 명령을 사용해 테이블에 시간 값을 입력합니다.

mysql> insert into AverageOnTime values('00:00:40');
Query OK, 1 row affected (0.20 sec)

mysql> insert into AverageOnTime values('00:02:50');
Query OK, 1 row affected (0.15 sec)

mysql> insert into AverageOnTime values('00:03:30');
Query OK, 1 row affected (0.13 sec)

mysql> insert into AverageOnTime values('00:04:55');
Query OK, 1 row affected (0.14 sec)

저장된 데이터 확인하기

SELECT 문으로 테이블에 저장된 시간 데이터를 조회해 보겠습니다.

mysql> select *from AverageOnTime;

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

+-------------+
| PunchInTime |
+-------------+
| 00:00:40 |
| 00:02:50 |
| 00:03:30 |
| 00:04:55 |
+-------------+
4 rows in set (0.00 sec)

TIME 열의 평균값 계산하기

이제 아래 쿼리를 실행하여 시간 열의 평균값을 구할 수 있습니다.

mysql> SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(PunchInTime))) as Average from AverageOnTime;

평균값이 시간 형식으로 출력되는 것을 확인할 수 있습니다.

+---------------+
| Average |
+---------------+
| 00:02:58.7500 |
+---------------+
1 row in set (0.08 sec)

정리

네 개의 시간 값(40초, 170초, 210초, 295초)의 평균은 약 178.75초이며, 이는 '00:02:58.7500'으로 표시됩니다. 이처럼 TIME_TO_SEC()SEC_TO_TIME()을 조합하면 MySQL에서 시간 열의 평균을 정확하게 계산할 수 있습니다. 출퇴근 기록, 작업 소요 시간 분석 등 다양한 상황에서 유용하게 활용할 수 있습니다.