본문 바로가기
Big Data/Database

GROUP BY 사용 시 제한

by Wikinist 2023. 7. 26.

GROUP BY 문은 데이터를 그룹화하는 데 사용되는 SQL 문입니다. GROUP BY를 사용할 때 SELECT 절과 HAVING 절에 몇 가지 제한 사항이 있습니다.

SELECT 절 제한

GROUP BY를 사용할 때 SELECT 절에서는 두 가지 유형의 컬럼만 사용할 수 있습니다:

a. 그룹화 기준으로 사용되는 컬럼들: GROUP BY 절에 명시된 컬럼들은 SELECT 절에서 직접 사용할 수 있습니다.

b. 집계 함수를 사용한 컬럼들: 집계 함수를 사용하여 그룹별로 계산된 결과를 SELECT 절에서 사용할 수 있습니다. 일반적인 집계 함수로는 COUNT, SUM, AVG, MIN, MAX 등이 있습니다.

예시

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

위의 예시에서 'department'는 GROUP BY 절에 있고, 'COUNT(employee_id)'는 집계 함수이며, 두 가지 컬럼만 SELECT 절에서 사용되었습니다.

HAVING 절 제한

HAVING 절은 GROUP BY로 그룹화된 결과에 대한 조건을 지정하는 데 사용됩니다. HAVING 절에는 집계 함수를 사용하여 그룹화된 결과를 필터링하는 조건을 작성할 수 있습니다. 하지만 HAVING 절에서는 다음 제한 사항이 있습니다:

a. 집계 함수를 사용해야 함: HAVING 절에서는 반드시 집계 함수를 사용해야 합니다. 일반 컬럼은 HAVING 절에서 사용할 수 없습니다.

b. GROUP BY 절에 사용된 컬럼만 사용 가능: HAVING 절에서는 반드시 GROUP BY 절에 명시된 그룹화 기준 컬럼들이나 그들의 조합만 사용할 수 있습니다.

예시:

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

위의 예시에서 'AVG(salary)'는 HAVING 절에서 허용되는 집계 함수로 사용되고, 'department'는 GROUP BY 절에 사용된 그룹화 기준 컬럼입니다.

이러한 제한 사항을 지켜야 쿼리가 올바르게 실행되며, 그룹화된 데이터에서 원하는 결과를 얻을 수 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'Big Data > Database' 카테고리의 다른 글

싱글 쿼터('), 더블 쿼터('')  (0) 2023.07.27
날짜 관련 함수  (0) 2023.07.26
EXISTS, ANY, ALL  (0) 2023.07.26
Long format / Wide format  (0) 2023.07.26
DATA_ADD 함수  (0) 2023.07.26