230804 TIL Chapter 19. GROUP BY & HAVING

최규연·2023년 8월 4일
0

TIL

목록 보기
19/57

오늘 배운 내용이 많아 2개로 나눠 쓰겠다.

먼저 SELECT문 해석 순서를 보면

5. SELECT 컬럼명 AS 별칭, 계산식, 함수식
1. FROM 참조할 테이블명
2. WHERE 컬럼명 | 함수식 비교연산자 비교값
3. GROUP BY 그룹을 묶을 컬럼명
4. HAVING 그룹함수식 비교연산자 비교값
6. ORDER BY 컬럼명 | 별칭 | 컬럼순번 정렬방식 [NULLS FIRST | LAST];

GROUP BY & HAVING

GROUP BY절

같은 값들이 여러개 기록된 컬럼을 가지고 같은 값들을 하나의 그룹으로 묶음
여러개의 값을 묶어서 하나로 처리할 목적으로 사용
그룹으로 묶은 값에 대해서 SELECT절 그룹함수를 사용함
그룹 함수는 단 한개의 결과값만 산출하기 때문에 그룹이 여러개일 경우 오류발생

GROUP BY 컬럼명 | 함수식, ...

GROUP BY 사용 시 주의사항

  • SELECT문에 GROUP BY절을 사용할 경우
  • SELECT절에 명시한 조회하려는 컬럼 중
  • 그룹함수가 정용되지 않은 컬럼을
  • 모두 GROUP BY절에 작성해야함.

HAVING절

그룹 함수로 구해 올 그룹에 대한 조건을 설정할 때 사용

HAVING 컬럼명 | 함수식 비교연산자 비교값

집계 함수 (ROLLUP, CUBE)

그룹 별 산출 결과 값의 집계를 계산하는 함수
(그룹별로 중간 집계 결과를 추가)
GROUP BY 절에서만 사용할 수 있는 함수!

ROLLUP

GROUP BY절에서 가장 먼저 작성된 컬럼의 중간 집계를 처리하는 함수

CUBE

GROUP BY 절에 작성된 모든 컬럼의 중간 집계를 처리하는 함수


집합 연산자 (SET OPERATOR)

여러 SELECT의 결과(RESULT SET)를 하나의 결과로 만드는 연산자

합집합 (UNION)

두 SELECT 결과를 하나로 합침
단, 중복은 한번만 작성

교집합 (INERTSECT)

두 SELECT 결과 중 중복되는 부분만 조회

UNION ALL

UNION + INTERSECT : 합집합에서 중복 부분 제거 X

차집합 (MINUS)

A에서 A,B 교집합 부분을 제거하고 조회

(주의사항 !) 집합 연산자를 사용하기 위한 SELECT문들은 조회하는 컬럼의 타입, 개수가 모두 동일해야 한다!

0개의 댓글