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

MySQL SELECT 절에서 그룹 함수(집계 함수)를 사용하는 방법

그룹 함수(Group Function)는 여러 값으로 이루어진 집합을 대상으로 동작합니다. 따라서 SELECT 절에서 그룹 함수를 사용하면, 쿼리의 선택 조건(WHERE 절 등)을 만족하는 행들에 대해 해당 함수가 일괄 적용되며, 그룹 함수의 계산 결과가 곧 쿼리의 최종 출력값으로 반환됩니다.

주요 그룹 함수의 종류

  • COUNT() — 지정한 열에서 NULL이 아닌 값의 개수를 반환합니다.
  • MIN() — 집합 내 최솟값을 반환합니다.
  • MAX() — 집합 내 최댓값을 반환합니다.
  • AVG() — 집합 내 값들의 평균을 반환합니다.
  • SUM() — 집합 내 값들의 합계를 반환합니다.

예시

아래 예시에서는 'Student' 테이블의 필드들을 대상으로 SELECT 문 안에서 여러 그룹 함수를 함께 사용했습니다. 이때 문장의 실행 결과는 각 그룹 함수의 계산 결과로 구성됩니다.

mysql> Select COUNT(Name), MIN(Id), AVG(Id), MAX(Id), COUNT(*) from Student;
+-------------+---------+---------+---------+----------+
| COUNT(Name) | MIN(Id) | AVG(Id) | MAX(Id) | COUNT(*) |
+-------------+---------+---------+---------+----------+
| 5           | 1       | 11.0000 | 20      | 5        |
+-------------+---------+---------+---------+----------+
1 row in set (0.03 sec)

결과 해석

  • COUNT(Name) → Name 열에 저장된 NULL이 아닌 값은 총 5개입니다.
  • MIN(Id) → Id의 최솟값은 1입니다.
  • AVG(Id) → Id의 평균값은 11.0000입니다.
  • MAX(Id) → Id의 최댓값은 20입니다.
  • COUNT(*) → 테이블의 전체 행 수는 5개입니다(COUNT(*)는 NULL 여부와 관계없이 모든 행을 셉니다).

이처럼 SELECT 절에서 그룹 함수를 활용하면 복잡한 별도의 처리 없이도 테이블 전체 또는 조건에 맞는 행 집합에 대한 통계 정보를 한 번의 쿼리로 손쉽게 얻을 수 있습니다.