[집합연산자]
· 집합연산자
-> 조인을 사용하지 않고 연관 데이터를 조회하는 방법 중 하나로 2개 이상의 질의 결과를 하나로 만들어 줌
· 집합연산자의 종류
1) UNION (합집합) : 두 개의 테이블을 하나로 만드는 연산
- 두 개의 테이블의 칼럼 수/데이터형식 모두 일치해야 함
- 중복된 데이터는 1개로 처리하기 때문에 정렬 과정을 발생시킴
2) UNION ALL(합집합)
- UNION과 같지만 중복제거를 하지 않아 정렬을 유발하지 않음
3) MINUS (차집합) : 두 개의 테이블에서 차집합을 조회
- SELECT문에는 있고 뒤에 쓰는 SELECT문에는 없는 집합을 조회
[그룹 함수]
· 그룹함수 (Group Function)
-> 특정 그룹에 대해 작업을 수행하고 결과를 반환하는 함수로 관계형 데이터 베이스에서 자주 사용(여러 행을 하나의 결과로 반환)
-> 데이터 그룹화 및 집계작업을 수행할 때 유용
· 그룹함수의 종류
1) ROLLUP
- GROUP BY의 칼럼에 대해 Subtotal을 계산
- GROUP BY구에 칼럼이 두 개 이상오면 순서에 따라 결과가 다름
2) GROUPING
- ROLLUP, CUBE, GROUPING SET에서 생성되는 합계 값을 구분하기 위해서 만들어진 함수
- 소계, 합계 등이 계산되면 1을 반환하고 그렇지 않으면 0을 반환
3) GROUPING SET
- GROUP BY에 나오는 칼럼의 순서와 관계없이 다양한 소계 생성
- GROUP BY에 나오는 칼럼의 순서와 관계없이 개별적으로 처리
4) CUBE
- 제시한 칼럼에 대해 결합 가능한 모든 집계를 계산
- 다차원 집계를 제공하여 다양한 데이터 분석 가능
- 조합할 수 있는 경우의 수가 모두 조합되는 것
[윈도우 함수]
· 윈도우 함수
-> 행과 행 간의 관계를 정의하기 위해 제공되는 함수로 윈도우 함수를 사용하여 순위, 합계, 평균, 행 위치 등 조작이 가능
· 윈도우 함수의 구조
[ SELECT WINDOW_FOUNCTION (ARGUMENTS)
OVER (PARTITION BY 칼럼
ORDER BY WINDOWUNG절 FROM 테이블명; ]
1) ARGUMENT (인수) : 윈도우 함수에 따라 0~N개의 인수를 설정
2) PARTITION BY : 전체 집합을 기준에 의해 소그룹으로 나눔
3) ORDER BY : 어떤 항목에 대해서 정렬
4) WINDOWING : 행 기준의 범위를 지정
· WINDOWING 구조
1) ROWS : 물리적 결과의 행의 집합을 지정
2) RANGE : 논리적인 값에 의해 행 집합을 지정
3) BETWEEN~AND : 윈도우 시작과 끝 위치를 지정
4) UNBOUNDED PRECEDING : 윈도우 시작 위치가 첫 행임을 의미
5) UNBOUNDED FOLLOWING : 윈도우 끝 위치가 마지막임을 의미
6) CURRENT ROW : 윈도우 시작 위치가 현재 행임을 의미
· 순위 관련 윈도우 함수
1) RANK : 특정항목, 파티션에 대해 순위를 계산(동일 순위는 동일 값 부여)
2) DENSE_RANK : 동일한 순위를 하나의 건수로 계산
3) ROW_NUMBER : 동일순위에 대해 고유 순위를 부여
· 집계 관련 윈도우 함수
1) SUM / AVG : 파티션 별로 합계 / 평균을 계산
2) COUNT : 파티션 별로 행 수를 계산
3) MAX / MIN : 파티션 별로 최댓값 / 최솟값 계산
· 행 순서 관련 윈도우 함수
1) FIRST_VALUE : 파티션에서 가장 처음에 나오는 값 (MIN과 동일)
2) LAST_VALUE : 파티션에서 가장 나중에 나오는 값을 구함 (MAX)
3) LAG : 이전 행을 가지고 옴
4) LEAD : 윈도우에서 특정 위치의 행을 가지고 옴 (기본값 1)
· 비율 관련 윈도우 함수
1) CUME_DIST
- 파티션 전체 건수에서 현재 행보다 작거나 같은 건수에 대한 누적
백분율을 조회 (누적 분포상에 위치를 0~1 사이의 값을 가짐)
2) PERCENT_RANK
- 파티션에서 제일 먼저 나온 것은 0, 제일 늦게 나온 것을 1로하여
값이 아닌 행의 순서 별 백분율을 조회
3) NTILE
- 파티션별로 전체 건수를 인자 값으로 N등분한 결과를 조회
4) RATIO_TO_REPORT
- 전체 SUM에 대한 행 별 칼럼 값의 백분율을 소수점까지 조회
'📊DataBase > 📈SQL' 카테고리의 다른 글
[🪪SQLD] 2과목 - SQL 활용 : PIVOT 절과 UNPIVOT 절 (24년 개정 요약) (0) | 2024.02.22 |
---|---|
[🪪SQLD] 2과목 - SQL 활용 : Top N 쿼리(24년 개정 요약) (0) | 2024.02.22 |
[🪪SQLD] 2과목 - SQL 기본 : 조인 / 표준조인 (24년 개정 요약) (0) | 2024.02.22 |
[🪪SQLD] 2과목 - SQL 기본 : 함수 (24년 개정 요약) (1) | 2024.02.22 |
[🪪SQLD] 2과목 - SQL 기본 : GROUP BY, HAVING 절 (24년 개정 요약) (0) | 2024.02.22 |