[SQL] SQL GROUP 함수

이지IT
|2023. 4. 24. 14:23
반응형

목차

  1. GROUP 함수
  2. 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