[MySQL] 집계함수

szlee·2024년 10월 20일
0

MySQL

목록 보기
8/16

MySQL에서 집계 함수는 여러 행을 하나의 결과로 요약하는 데 사용됩니다. 주로 데이터 집합의 값에 대한 계산을 수행하고, 그 결과를 반환하는 데 사용됩니다. 집계 함수는 GROUP BY 절과 함께 자주 사용되며, 대량의 데이터를 요약하거나 분석할 때 매우 유용합니다.

MySQL에서 자주 사용하는 주요 집계 함수는 다음과 같습니다:

주요 집계 함수

  • COUNT(): 행의 개수를 계산합니다.
  • SUM(): 숫자 데이터의 합계를 계산합니다.
  • AVG(): 숫자 데이터의 평균을 계산합니다.
  • MAX(): 값 중에서 가장 큰 값을 반환합니다.
  • MIN(): 값 중에서 가장 작은 값을 반환합니다.
  • GROUP_CONCAT(): 그룹화된 행들의 값을 문자열로 연결하여 반환합니다.

COUNT()

특정 컬럼이나 전체 데이터에서 행의 개수를 반환합니다.
NULL 값은 제외하고 카운트합니다.

사용 예시:

SELECT COUNT(*) AS total_rows
FROM employees;

이 쿼리는 employees 테이블의 모든 행의 개수를 반환합니다.

특정 컬럼에서 중복되지 않은 값을 카운트:

SELECT COUNT(DISTINCT department_id) AS unique_departments
FROM employees;

이 쿼리는 중복을 제외한 부서 ID의 개수를 반환합니다.

SUM()

숫자 값들의 합을 반환합니다.
사용 예시:

SELECT SUM(salary) AS total_salary
FROM employees;

이 쿼리는 employees 테이블에서 모든 직원의 급여 합계를 반환합니다.

AVG()

숫자 값들의 평균을 계산하여 반환합니다.
사용 예시:

SELECT AVG(salary) AS avg_salary
FROM employees;

이 쿼리는 employees 테이블에서 직원들의 평균 급여를 반환합니다.

MAX()

가장 큰 값을 반환합니다.
사용 예시:

SELECT MAX(salary) AS max_salary
FROM employees;

이 쿼리는 employees 테이블에서 가장 높은 급여를 반환합니다.

MIN()

가장 작은 값을 반환합니다.
사용 예시:


SELECT MIN(salary) AS min_salary
FROM employees;

이 쿼리는 employees 테이블에서 가장 낮은 급여를 반환합니다.

GROUP_CONCAT()

그룹화된 행들의 값을 하나의 문자열로 연결하여 반환합니다.
기본적으로 쉼표로 구분된 값을 반환하며, SEPARATOR를 사용하여 구분자를 변경할 수 있습니다.
사용 예시:


SELECT department_id, GROUP_CONCAT(employee_name) AS employees
FROM employees
GROUP BY department_id;

이 쿼리는 각 부서별로 직원들의 이름을 하나의 문자열로 연결해서 반환합니다.

구분자 변경:


SELECT department_id, GROUP_CONCAT(employee_name SEPARATOR ' | ') AS employees
FROM employees
GROUP BY department_id;

이 쿼리는 각 부서별로 직원들의 이름을 |로 구분하여 연결해서 반환합니다.

GROUP BY와 함께 사용하기

집계 함수는 주로 GROUP BY와 함께 사용됩니다. GROUP BY는 특정 컬럼을 기준으로 데이터를 그룹화한 후, 각 그룹에 대해 집계 연산을 수행합니다.

예시: 부서별 평균 급여 계산


SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id;

이 쿼리는 각 부서별로 직원들의 평균 급여를 계산하여 반환합니다.

예시: 부서별 직원 수와 최대 급여 계산


SELECT department_id, COUNT(*) AS employee_count, MAX(salary) AS max_salary
FROM employees
GROUP BY department_id;

이 쿼리는 각 부서별로 직원 수와 최대 급여를 계산하여 반환합니다.

NULL 값 처리

집계 함수들은 NULL 값을 무시하고 계산합니다. 즉, NULL 값은 SUM(), AVG(), COUNT() 등의 계산에 포함되지 않습니다.

예시: NULL 값 처리


SELECT COUNT(salary) AS salary_count
FROM employees;

이 쿼리는 급여 값이 NULL이 아닌 직원의 수만 카운트합니다.

profile
🌱

0개의 댓글