집합 연산자
- SELECT문 결과를 하나의 집합으로 간주. 그 집합에 대한 합집합, 교집합, 차집합 연산
- 두 집합의 컬럼이 동일하게 구성되어야 함
합집합
- 두 집합의 총 합 출력
1) UNION
- 중복된 데이터 제거
- 중복된 데이터를 제거하기 위해 내부적으로 정렬 수행
2) UNION ALL
- 중복된 데이터도 전체 출력
교집합
- INTERSECT
- 두 집합의 교집합 출력
차집합
- 두 집합 사이에 MINUS
- 두 집합의 차집합 출력
- (A-B)와 (B-A)는 다름
집합 연산자 사용 주의
1. 두 집합의 컬럼 수 일치
2. 두 집합의 컬럼 순서 일치
3. 두 집합의 각 컬럼의 데이터 타입 일치
4. 각 컬럼의 사이즈는 달라도 됨
5. 개별 SELECT문에 ORDER BY 전달 불가 (GROUP BY는 가능)
그룹 함수
- 숫자함수 중 여러값을 전달하여 하나의 요약값을 출력하는 함수
- 반드시 한 컬럼만 전달
- NULL은 연산하지 않음
COUNT
- 행의 수를 세는 함수
- * 또는 하나의 컬럼만 전달
SUM
- 총 합 출력 (숫자만 가능)
AVG
- 평균 출력 (숫자만 가능)
- NULL을 제외하고 계산
MIN/MAX
- 최대, 최소 출력
VARIANCE/STDDEV
- 분산과 표준편차
GROUP BY FUNCTION
- GROUP BY절에 사용하는 함수
- 여러 GROUP BY 결과를 동시에 출력하는 기능
1. GROUPING SETS(A, B, ...)
- A별, B별 그룹 연산 결과 출력
ex) SELECT DEPTNO, JOB, SUM(SAL) FROM EMP GROUP BY GROUPING SETS(DEPTNO, JOB);
= SELECT DEPTNO, NULL AS JOB, SUM(SAL) FROM EMP GROUP BY DEPTNO
UNION ALL
SELECT NULL, JOB, SUM(SAL) FROM EMP GROUP BY JOB;
2. ROLLUP(A, B)
- A별, (A, B)별, 전체 그룹 연산 결과 출력 (순서중요)
3. CUBE(A, B)
- A별, B별, (A, B)별, 전체 그룹 연산 결과 출력
'데이터베이스 > SQLD' 카테고리의 다른 글
[SQLD] TOP N QUERY, 계층형 질의 (0) | 2024.11.16 |
---|---|
[SQLD] 조인 (0) | 2024.11.11 |
[SQLD] 함수 (0) | 2024.11.10 |
[SQLD] 관계형 데이터베이스 (1) | 2024.11.10 |
[SQLD] 정규화 (0) | 2024.11.09 |