코딩 스쿨 SQL

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

SQL Aggregate Functions

SQL 집계 함수 (Aggregate Functions): 데이터를 요약하고 계산

SQL 집계 함수는 여러 행에서 하나의 값을 계산할 때 사용됩니다. 집계 함수는 데이터를 요약하거나 계산하여 통계적 분석을 도와줍니다. SELECT 문과 함께 사용되며, 특히 GROUP BY 절과 결합하여 데이터를 그룹별로 요약할 수 있습니다. 집계 함수는 SQL에서 데이터를 처리하는 데 필수적입니다.

가장 자주 사용되는 SQL 집계 함수는 다음과 같습니다:

  • COUNT(): 행의 개수를 셈
  • SUM(): 값의 합계를 계산
  • AVG(): 값의 평균을 계산
  • MAX(): 최대값을 반환
  • MIN(): 최소값을 반환

1. COUNT(): 행 개수 세기

COUNT() 함수는 지정된 열이나 테이블에서 NULL이 아닌 행의 개수를 반환합니다.

1.1 전체 행의 개수

SELECT COUNT(*)
FROM employees;

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

결과 예시:

COUNT(*)


10


1.2 특정 조건에 맞는 행의 개수

SELECT COUNT(*)
FROM employees
WHERE department = 'Sales';

이 쿼리는 Sales 부서에 속한 직원의 수를 계산합니다.

결과 예시:

COUNT(*)


3


2. SUM(): 합계 계산

SUM() 함수는 특정 열의 값을 모두 더한 합계를 계산합니다. 주로 숫자 데이터를 처리할 때 사용됩니다.

2.1 특정 열의 합계

SELECT SUM(salary)
FROM employees;

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

결과 예시:

SUM(salary)


55000


2.2 조건에 맞는 데이터의 합계

SELECT SUM(salary)
FROM employees
WHERE department = 'HR';

이 쿼리는 HR 부서에 속한 직원들의 급여 합계를 계산합니다.

결과 예시:

SUM(salary)


15000


3. AVG(): 평균 계산

AVG() 함수는 특정 열의 평균값을 반환합니다.

3.1 급여의 평균 계산

SELECT AVG(salary)
FROM employees;

이 쿼리는 employees 테이블에서 직원들의 급여 평균을 계산합니다.

결과 예시:

AVG(salary)


5500


3.2 조건에 맞는 데이터의 평균 계산

SELECT AVG(salary)
FROM employees
WHERE department = 'Engineering';

이 쿼리는 Engineering 부서 직원들의 급여 평균을 계산합니다.

결과 예시:

AVG(salary)


6000


4. MAX(): 최대값 반환

MAX() 함수는 특정 열의 최대값을 반환합니다.

4.1 급여의 최대값 조회

SELECT MAX(salary)
FROM employees;

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

결과 예시:

MAX(salary)


8000


4.2 조건에 맞는 최대값 조회

SELECT MAX(salary)
FROM employees
WHERE department = 'Marketing';

이 쿼리는 Marketing 부서에서 가장 높은 급여를 반환합니다.

결과 예시:

MAX(salary)


7000


5. MIN(): 최소값 반환

MIN() 함수는 특정 열의 최소값을 반환합니다.

5.1 급여의 최소값 조회

SELECT MIN(salary)
FROM employees;

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

결과 예시:

MIN(salary)


3000


5.2 조건에 맞는 최소값 조회

SELECT MIN(salary)
FROM employees
WHERE department = 'Sales';

이 쿼리는 Sales 부서에서 가장 낮은 급여를 반환합니다.

결과 예시:

MIN(salary)


4000


6. GROUP BY와 집계 함수 결합

집계 함수는 GROUP BY 절과 함께 사용하여 데이터를 그룹별로 요약할 수 있습니다. 예를 들어, 부서별 평균 급여를 계산할 수 있습니다.

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

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

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

결과 예시:

department avg_salary
Sales 5000
HR 5500
Engineering 6000

예제: 부서별 직원 수 계산

SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;

이 쿼리는 각 부서별로 직원 수를 반환합니다.

결과 예시:

department employee_count
Sales 3
HR 2
Engineering 4

7. HAVING 절과 집계 함수

HAVING 절은 GROUP BY와 함께 사용되어 집계 결과에 조건을 걸 수 있습니다. 이는 WHERE 절이 집계 함수와 함께 사용할 수 없기 때문에 필요합니다.

예제: 직원 수가 3명 이상인 부서만 조회

SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department
HAVING COUNT(*) >= 3;

이 쿼리는 직원 수가 3명 이상인 부서만 반환합니다.

결과 예시:

department employee_count
Engineering 4
Sales 3

8. 실전 예제

예제 1: 부서별 최대 급여 조회

SELECT department, MAX(salary) AS max_salary
FROM employees
GROUP BY department;

이 쿼리는 각 부서별로 가장 높은 급여를 반환합니다.

예제 2: 급여 합계가 20,000 이상인 부서 조회

SELECT department, SUM(salary) AS total_salary
FROM employees
GROUP BY department
HAVING SUM(salary) >= 20000;

이 쿼리는 급여의 합계가 20,000 이상인 부서를 반환합니다.

요약

SQL 집계 함수는 데이터를 요약하고 계산하는 데 매우 유용한 도구입니다. COUNT, SUM, AVG, MAX, MIN은 데이터를 분석하고 요약할 때 자주 사용되며, GROUP BYHAVING 절과 함께 사용하면 더욱 강력한 데이터 분석 도구가 됩니다. 이러한 함수는 데이터베이스에서 통계적 분석을 수행하고, 복잡한 데이터를 요약하는 데 필수적입니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com