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 |