[sql] GROUP BY 절에서 NULL 값 처리 방법 설명

SQL에서 GROUP BY 절을 사용할 때 NULL 값을 처리하는 방법은 매우 중요합니다. 만약 GROUP BY 절에 있는 칼럼에 NULL 값이 포함되어 있다면, NULL 값을 어떻게 처리할지에 대한 결정이 필요합니다. 여기서는 GROUP BY 절에서 NULL 값을 처리하는 방법에 대해 설명하겠습니다.

GROUP BY 절과 NULL 값

SQL에서 GROUP BY 절은 특정 칼럼의 값에 따라 그룹을 지어 집계 연산을 수행하는 데 사용됩니다. 이때 NULL 값은 특별한 처리가 필요합니다.

SELECT department, COUNT(employee_id) 
FROM employees
GROUP BY department;

위의 쿼리에서, 만약 어떤 부서에 속하지 않는 사원이 있다면, 해당 부서의 employee_id 값은 NULL일 수 있습니다.

NULL 값 처리 방법

1. GROUP BY에서 NULL 제외하기

SELECT department, COUNT(employee_id) 
FROM employees
WHERE department IS NOT NULL
GROUP BY department;

위 예시에서는 WHERE 절을 사용하여 NULL 값을 제외한 후에 GROUP BY를 수행합니다.

2. COALESCE 함수 사용

SELECT COALESCE(department, 'No Department'), COUNT(employee_id) 
FROM employees
GROUP BY COALESCE(department, 'No Department');

COALESCE 함수는 첫 번째로 NULL이 아닌 값이 나올 때까지 인자를 평가하고, 첫 번째로 NULL이 아닌 값을 반환합니다.

3. ISNULL 함수 사용(Microsoft SQL Server)

SELECT ISNULL(department, 'No Department'), COUNT(employee_id) 
FROM employees
GROUP BY ISNULL(department, 'No Department');

Microsoft SQL Server에서는 COALESCE 대신 ISNULL 함수를 사용할 수 있습니다.

결론

GROUP BY 절에서 NULL 값을 적절히 처리하는 것은 데이터 집계 및 분석에 있어 매우 중요한 요소입니다. 쿼리를 작성할 때, NULL 값을 어떻게 처리할지를 고려하여야 하며, 이를 통해 정확하고 유용한 결과를 얻을 수 있습니다.

참고문헌: