티스토리 뷰

 

 

 

📌 SQL COUNT

SQL에서 COUNT() 함수는 지정된 조건과 일치하는 행 수 또는 테이블의 총 행 수를 반환합니다.

특정 기준에 따라 레코드 수를 반환하기 위해 'SELECT' 문과 함께 사용할 수 있습니다.

 

 

 

 

📌 기본 사용법

SELECT COUNT(column_name)
FROM table_name
WHERE condition;
 
    • COUNT(column_name): 지정된 열에서 NULL이 아닌 값의 개수를 계산합니다.
    • COUNT(*): NULL 값이 있는 행을 포함하여 테이블의 모든 행을 계산합니다.

 

 

 

 

 

 

📌 사용 예제

다음 데이터가 포함된 'employees' 테이블을 생각해 보세요.

 

 

1. 테이블의 모든 행 계산

employees 테이블의 모든 행을 계산하려면 COUNT(*)를 사용합니다.

SELECT COUNT(*)
FROM employees;
 

결과 :

5
 
    • 'employees' 테이블에 5개의 행이 있으므로 이 쿼리는 '5'를 반환합니다.

 

 

 

 

 

2. 특정 열에서 NULL이 아닌 값 계산

'HR' 부서에 직원이 몇 명 있는지 계산하려면 다음과 같이 작성합니다.

SELECT COUNT(department)
FROM employees
WHERE department = 'HR';
 

결과 :

2
 
    • 여기서 COUNT는 department 열이 NULL이 아니고 HR' 조건과 일치하는 행만 계산합니다.

 

 

 

 

 

 

📌 다양한 사용 사례

 

1. COUNT(*)를 사용하여 모든 행 개수 계산

    • COUNT(*)는 NULL 값을 포함하여 전체 테이블의 행 수를 계산합니다.
    • 내용에 관계없이 모든 항목을 계산하려는 경우 유용합니다.
SELECT COUNT(*)
FROM employees;
 

 

 

 

 

2. COUNT(column_name)을 사용하여 NULL이 아닌 값 계산

    • COUNT(column_name)을 사용하면 지정된 열에 NULL이 아닌 값이 있는 행만 계산됩니다.
    • 열에 NULL 값이 포함된 경우 해당 행은 계산에서 제외됩니다.
SELECT COUNT(name)
FROM employees;
 
    • 'name' 열에 'NULL' 값이 없으면 테이블의 총 직원 수가 계산됩니다.
    • 일부 이름이 NULL인 경우 해당 행은 계산되지 않습니다.

 

 

 

 

 

 

3. 고유 값에 COUNT(DISTINCT 컬럼_이름) 사용

    • COUNT(DISTINCT 컬럼_이름)을 사용하여 열의 고유 값 수를 계산할 수도 있습니다.
SELECT COUNT(DISTINCT department)
FROM employees;
 
    • 중복을 제외하고 얼마나 많은 부서가 존재하는지 계산합니다.

 

 

 

 

 

4. COUNT()를 사용한 그룹화

    • COUNT()를 GROUP BY 절과 결합하여 일부 기준에 따라 그룹의 행 수를 계산할 수 있습니다.

 

 

예: 각 부서에 직원 수를 계산합니다.

SELECT department, COUNT(*)
FROM employees
GROUP BY department;
 
    • '부서'별로 행을 그룹화하고 각 부서의 직원 수를 계산합니다.

 

 

 

 

 

 

 

 

📌 GOOD 사용법

 

1. COUNT()와 HAVING 결합

  • 데이터를 그룹화할 때 개수를 기준으로 특정 그룹을 필터링할 수 있습니다.
  • HAVING 절을 사용하여 수행할 수 있습니다.

 

예: 직원이 두 명 이상인 부서 찾기

SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 1;
 

결과 :

HR            | 2
Engineering   | 2
 
 
  • HAVING COUNT(*) > 1을 사용하여 직원이 2명 미만인 부서를 필터링합니다.

 

 

 

 

 

 

 

 

📌 BAD 사용법

 

1. 데이터 무결성을 고려하지 않고 NULL 열에 COUNT() 사용

    • COUNT(column_name)을 사용하는 경우 열 값이 NULL인 행은 계산되지 않는다는 점을 기억하세요.

 

 

 

 

2. COUNT(*)와 COUNT(column_name) 혼동하기

  • 행 계산에는 둘 다 사용할 수 있지만 COUNT(*)는 모든 행을 계산하는 반면 COUNT(column_name)은 열 값이 NULL이 아닌 행만 계산합니다.

 

 

 

 

 

 

반응형