SQL Count
SQL COUNT(): 행의 개수 세기
SQL COUNT() 함수는 테이블에서 특정 조건을 만족하는 행(row)의 개수를 반환하는 집계 함수입니다. 이 함수는 데이터의 수량을 계산하는 데 매우 유용하며, NULL 값을 제외하고 데이터를 세거나, 특정 열의 값 개수를 세는 데 사용됩니다.
1. 기본 COUNT() 문법
COUNT() 함수는 다음과 같은 형식으로 사용됩니다:
SELECT COUNT(열이름)
FROM 테이블이름
WHERE 조건;
- 열이름: 개수를 셀 열(column)입니다. NULL 값을 제외하고 계산합니다.
- WHERE 조건: 데이터를 필터링할 조건(선택적).
- COUNT(*): 테이블의 전체 행 개수를 셉니다. NULL 값을 포함한 모든 행을 계산합니다.
2. SQL COUNT() 예제
2.1 테이블의 전체 행 개수 세기
다음은 employees
테이블의 전체 행 개수를 반환하는 예제입니다.
SELECT COUNT(*)
FROM employees;
이 쿼리는 테이블의 모든 행을 포함한 총 행의 개수를 반환합니다.
결과 예시:
COUNT(*)
10
2.2 특정 열의 개수 세기
다음 쿼리는 employees
테이블에서 NULL 값을 제외한 salary
열의 개수를 계산합니다.
SELECT COUNT(salary)
FROM employees;
이 쿼리는 급여(salary
)가 NULL이 아닌 직원의 수를 반환합니다.
결과 예시:
COUNT(salary)
9
3. WHERE 절과 함께 사용하기
WHERE 절과 결합하여 특정 조건을 만족하는 행의 개수를 셀 수 있습니다.
3.1 특정 조건을 만족하는 행 개수
다음 쿼리는 Sales
부서에 속한 직원의 수를 계산합니다.
SELECT COUNT(*)
FROM employees
WHERE department = 'Sales';
결과 예시:
COUNT(*)
3
3.2 여러 조건을 결합하여 행 개수 계산
다음 쿼리는 Sales
부서에 속하며 급여가 5,000 이상인 직원의 수를 계산합니다.
SELECT COUNT(*)
FROM employees
WHERE department = 'Sales' AND salary >= 5000;
결과 예시:
COUNT(*)
2
4. DISTINCT와 함께 사용하기
COUNT() 함수는 DISTINCT와 결합하여 중복되지 않은 고유한 값의 개수를 셀 수 있습니다.
예제: 고유한 부서의 개수 세기
다음 쿼리는 employees
테이블에서 중복되지 않은 부서(department
)의 수를 계산합니다.
SELECT COUNT(DISTINCT department)
FROM employees;
이 쿼리는 employees
테이블에 있는 고유한 부서의 개수를 반환합니다.
결과 예시:
COUNT(DISTINCT department)
4
5. GROUP BY와 함께 사용하기
GROUP BY 절과 함께 사용하면 특정 그룹별로 행의 개수를 셀 수 있습니다.
예제: 부서별 직원 수 세기
다음 쿼리는 각 부서별로 직원 수를 계산합니다.
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;
이 쿼리는 각 부서에 속한 직원들의 수를 반환합니다.
결과 예시:
department | employee_count |
---|---|
Sales | 3 |
HR | 2 |
Engineering | 4 |
6. HAVING 절과 함께 사용하기
HAVING 절은 GROUP BY와 함께 사용되어 집계 결과에 조건을 걸 수 있습니다. 이 절은 WHERE 절과 달리, 집계된 결과에 조건을 적용할 수 있습니다.
예제: 직원 수가 3명 이상인 부서만 조회
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department
HAVING COUNT(*) >= 3;
이 쿼리는 직원 수가 3명 이상인 부서만 반환합니다.
결과 예시:
department | employee_count |
---|---|
Sales | 3 |
Engineering | 4 |
7. 실전 예제
예제 1: 전체 직원 수 조회
SELECT COUNT(*)
FROM employees;
이 쿼리는 employees
테이블에 있는 전체 직원 수를 반환합니다.
예제 2: 급여가 6,000 이상인 직원 수 조회
SELECT COUNT(*)
FROM employees
WHERE salary >= 6000;
이 쿼리는 급여가 6,000 이상인 직원들의 수를 계산합니다.
예제 3: 고유한 부서의 개수 조회
SELECT COUNT(DISTINCT department)
FROM employees;
이 쿼리는 고유한 부서의 개수를 반환합니다.
예제 4: 부서별 직원 수 조회
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;
이 쿼리는 부서별로 직원 수를 반환합니다.
예제 5: 직원 수가 5명 이상인 부서 조회
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department
HAVING COUNT(*) >= 5;
이 쿼리는 직원 수가 5명 이상인 부서만 반환합니다.
요약
SQL COUNT() 함수는 테이블에서 특정 조건을 만족하는 행의 개수를 세는 데 사용됩니다. 전체 행의 개수를 셀 수 있을 뿐만 아니라, 특정 조건에 맞는 데이터나 고유한 값의 개수를 계산할 수 있습니다. WHERE, DISTINCT, GROUP BY, HAVING 절과 함께 사용하면 다양한 방식으로 데이터를 분석할 수 있습니다. COUNT 함수는 데이터베이스 쿼리에서 데이터를 요약하고 분석하는 데 매우 중요한 도구입니다.