Part 4. GROUP BY HAVING

Hyunsu·2023년 3월 12일
0

국비 교육

목록 보기
27/36
post-thumbnail

📝 목차

  1. GROUP BY
  2. HAVING
  3. ROLLUP 과 CUBE
  4. 집합 연산자

1. GROUP BY

여러 개의 값을 산출하기 위해 그룹 함수가 적용될 그룹의 기준을 기술하여 사용한다.

SELECT 문의 해석 순서는 반드시 알아두어야 한다.

5) SELECT 컬럼명|함수|계산식|리터럴 [AS 별칭]
1) FROM 테이블명
2) WHERE 조건식
3) GROUP BY 그룹으로 묶을 컬럼명|함수
4) HAVING 그룹 함수식을 이용한 조건식
6) ORDER BY 컬럼명|별칭|컬럼순서 ASC|DESC [NULLS FIRST|NULLS LAST];

GROUP BY 는 다음과 같이 사용할 수 있다.

GROUP BY 절을 해석해보면 다음과 같다.

3) SELECT DEPT_CODE, SUM(SALARY) -- 그룹별 SALARY 합계 조회
1) FROM EMPLOYEE -- EMPLOYEE 테이블에서
2) GROUP BY DEPT_CODE; -- DEPT_CODE 가 같은 행끼리 그룹을 지어 (7개 그룹)

2. HAVING

그룹함수로 조회할 그룹에 대한 조건을 설정할 때 사용한다.

아래 코드만 이해하면 HAVING 절은 끝난다.

-- 부서별 평균 급여가 300백만원 이상인 부서를 조회
SELECT DEPT_CODE, AVG(SALARY)
FROM EMPLOYEE
GROUP BY DEPT_CODE
HAVING AVG(SALARY) >= 3000000 -- GROUP BY에서 묶인 그룹에 조건을 대입
ORDER BY 1;

-- 부서별 급여가 300백만 이상인 사원들의 평균 급여를 조회
SELECT DEPT_CODE, AVG(SALARY)
FROM EMPLOYEE
WHERE SALARY >= 3000000 -- EMPLOYEE 테이블의 모든 행에 조건을 대입
GROUP BY DEPT_CODE
ORDER BY 1;

3. ROLLUP 과 CUBE

집계 함수는 GROUP BY 절에 작성하여 그룹별로 산출한 결과를 집계하는 함수이다.
집계 함수에는 ROLLUP 과 CUBE 가 있다. 실무에서 사용 할 일은 거의 없다.

ROLLUP 은 그룹별로 중간 집계와 전체 합계를 처리하는 함수이다.
단독으로 사용하는 일은 거의 없다.

CUBE 는 그룹으로 지정된 모든 그룹에 대한 중간 집계와 총 합계를 처리하는 함수이다.


4. 집합 연산자

두 개 이상의 SELECT 결과를 이용해 하나의 결과를 조회하는 연산자이다.
집합 연산에 사용되는 SELECT 문은 SELECT 절의 타입과 순서 및 개수가 동일해야 한다.

📌 UNION

중복된 영역은 제외하고 합친다.

📌 UNION ALL

중복된 영역을 포함하여 합친다.

📌 INTERSECT

여러 SELECT 결과에서 공통된 부분만 추출한다.

📌 MINUS

선행 SELECT 결과에서 다음 SELECT 결과와 겹치는 부분을 제외하여 추출한다.

profile
현수의 개발 저장소

0개의 댓글