목차
- GROUP 함수
- GROUP BY와 함께 사용하기
GROUP 함수
집계 함수라고도 하는 SQL GROUP 함수는 행 그룹에 대해 계산을 수행하고 단일 값을 반환합니다. 이러한 함수는 종종 'GROUP BY' 절과 함께 사용되어 각 행 그룹에 대한 계산을 수행합니다. 몇 가지 일반적인 SQL GROUP 함수는 다음과 같습니다.
1. COUNT(): 그룹의 행 수를 반환합니다.
SELECT COUNT(*) FROM employees WHERE department_id = 1;
2. SUM(): 행 그룹의 특정 열에 있는 모든 값의 합계를 반환합니다.
SELECT department_id, SUM(salary) FROM employees GROUP BY department_id;
3. AVG(): 행 그룹에 대한 특정 열의 평균 값을 반환합니다.
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;
4. MIN(): 행 그룹에 대한 특정 열의 최소값을 반환합니다.
SELECT department_id, MIN(salary) FROM employees GROUP BY department_id;
5. MAX(): 행 그룹에 대한 특정 열의 최대값을 반환합니다.
SELECT department_id, MAX(salary) FROM employees GROUP BY department_id;
GROUP BY와 함께 사용하기
6. DISTINCT: SQL GROUP 함수와 함께 사용할 때, DISTINCT 키워드는 계산을 수행하기 전에 지정된 열 내에서 중복 값을 제거합니다. 이는 고유한 값 세트에서 집계 함수를 수행하려는 경우에 유용합니다.
- SUM과 DISTINCT를 사용한 예시
SELECT SUM(DISTINCT salary) FROM employees WHERE department_id = 1;
7. CUBE: CUBE 연산자는 GROUP BY 절의 확장으로, 그룹화된 열의 모든 가능한 조합에 대한 소계를 생성할 수 있습니다. 이는 다차원 요약 보고서를 생성하는 데 유용합니다. CUBE 연산자는 선택한 열의 값 조합별 집계를 계산합니다.
- GROUP BY CUBE를 사용한 예시
SELECT department_id, job_title, SUM(salary)
FROM employees
GROUP BY CUBE(department_id, job_title);
8. ROLLUP: ROLLUP 연산자는 GROUP BY 절의 또 다른 확장으로, 그룹화된 열에 대한 소계와 총계를 생성할 수 있습니다. CUBE와는 달리, ROLLUP은 GROUP BY 절에서 지정된 열을 왼쪽에서 오른쪽으로 이동하면서 계층적 요약을 생성합니다.
- GROUP BY ROLLUP을 사용한 예시
SELECT department_id, job_title, SUM(salary)
FROM employees
GROUP BY ROLLUP(department_id, job_title);
CUBE와 ROLLUP 모두 요약 보고서를 생성하는 데 사용되지만, 서브합계를 생성하는 방법에서 차이가 있습니다. CUBE는 모든 조합에 대한 소계를 생성하는 반면, ROLLUP은 GROUP BY 절의 열 순서를 기반으로 계층적인 소계를 생성합니다.
'SQL' 카테고리의 다른 글
[MySQL] RANK 함수 (0) | 2023.04.24 |
---|---|
[SQL] SQL MATH 함수 (0) | 2023.04.24 |
[SQL] SQL, SQL server 날짜와 시간 데이터 가져오기 (0) | 2023.04.23 |
[SQL] SQL 문자열 함수들과 사용 예시 (0) | 2023.04.23 |
[SQL] MySQL 서브 쿼리(SUBQUERY)란? (0) | 2023.04.23 |