9. 서브 쿼리
- 서브쿼리
- 서브쿼리 사용 가능한 위치: GROUP BY절 사용 불가
- 서브쿼리 종류
1) 동작하는 방식에 따라: UN-CORRELATED 서브쿼리, CORRELATED 서브쿼리
2) 위치에 따라: 스칼라 서브쿼리(SELECT절), 인라인뷰(FROM절), WHERE절 서브쿼리
- WHERE절 서브쿼리 종류: 단일행 서브쿼리, 다중행 서브쿼리, 다중컬럼 서브쿼리. 상호연관 서브쿼리
- ALL과 ANY 비교
- EXISTS / NOT EXISTS 연산자
- 인라인뷰: 쿼리 안의 뷰
- 스칼라 서브쿼리
10. 집합 연산자
- 집합 연산자
- 합집합: UNION(UNION ALL)
- 교집합: INTERSECT
- 차집합: MINUS
11.그룹 함수
- 그룹함수
- COUNT: NULL은 세지 않는다, count(*)은 항상 모든 행의 수 출력
- SUM
- AVG: NULL을 제외한 대상의 평균
- MIN/MAX
- VARIANCE / STDDEV
- GROUP BY FUNCTION
1) GROUPING SETS(A,B,...)
2) ROLLUP(A,B) : (A,B) -> A -> 전체 행
3) CUBE(A,B): (A,B) -> A -> B -> 전체 행
12. 윈도우 함수
- WINDOW FUNCTION
1) PARTITION BY절
2) ORDER BY절
3) ROWSlRANGE BETWEEN A AND B
- 윈도우 함수의 형태: OVER절을 사용하여 함수로 사용 가능
1) SUM OVER()
2) AVG OVER()
3) MIN/MAX OVER()
4) COUNT
- 윈도우 함수 연산 대상 및 범위 : ROWSlRANGE BETWEEN A AND B
1) 연산대상
2) 범위 : A(시작점) - CURRENT ROW, UNBOUNDED PRECEDING, N PRECEDING, B(마지막 지점) - CURRENT ROW, UNBOUNDED FOLLOWING, N FOLLOWING
- 순위 관련 함수
1) RANK(순위): RANK WITHIN GROUP, RANK() OVER(), DENSE_RANK, ROW_NUMBER
- 행 간의 값 참조함수
- LAG(이전값), LEAD(다음값)
- FIRST_VALUE, LAST_VALUE(범위 지정 키워드 필요)
- 비율함수
1) NTILE: 정해진 수의 그룹으로 나누기 위한 함수
2) CUME_DIST(): 해당 값보다 작거나 같은 값의 비율
3) PERCENT RANK(): 주어진 값이 데이터 집합 내에서 상대적으로 어디에 위치하는지를 비율로 나타낸 함수
4) RATIO_TO_REPORT() : 각 값이 전체 합에서 차지하는 비율
13. Top N 쿼리
- TOP N QUERY: 전체 결과에서 특정 N개 추출
- TOP N 행 추출 방법
1) ROWNUM
2) RANK
3) FETCH: 출력될 행의 수를 제한
4) TOP N (SQL Server)
14. 계층형 질의와 셀프 조인
- 계층형 질의: 하나의 테이블 내 각 행끼리 관계를 가질 때, 행과 행 사이의 계층을 표현하는 기법
- 계층형 질의 조건
1) CONNECT BY절 조건: START WITH 절 데이터 항상 출력
2) WHERE절 조건: START WITH 절 데이터가 조건에 맞지 않는 경우 생략
- 계층형 질의 가상 컬럼: LEVEL, CONNECT_BY_ISLEAF
- 계층형 질의 가상 함수
1) CONNECT_BY_ROOT: 루트노트의 컬럼값
2) SYS_CONNECT_BY_PATH: 이어지는 경로
3) ORDER SIBILINGS BY: 같은 레벨일 경우 정렬
4) CONNECT_BY_ISCYCLE: 순환 발생
15. PIVOT절과 UNPIVOT절
- 데이터의 구조: LONG DATA(tidy data), WIDE DATA(Cross table)
- 데이터 구조 변경
1) PIVOT: LONG -> WIDE = 교차표 만드는 기능
2) UNPIVOT: WIDE -> LONG
16. 정규 표현식
- 정규 표현식: 문자열의 공통된 규칙을 일반화하여 표현하는 방법
- REGEXP_REPLACE: 정규식 표현을 사용할 문자열 치환 가능
- REGEXP_SUBSTR: 정규식 표현식을 사용한 문자열 추출
- REGEXP_INSTR: 특정 패턴의 시작 위치 반환
- REGEXP_LIKE: 특정패턴 갖는 경우 반환
- REGEXP_COUNT: 특정패턴의 횟수 반환
'✏ 공부' 카테고리의 다른 글
[SQLD] 2025년 요약본 공유: 1과목 ㅣ 2과목 (1) | 2025.05.22 |
---|---|
[SQLD] 2과목 (3) SQL 기본 및 활용 - DML, TCL, DDL, DCL (0) | 2025.05.21 |
[SQLD] 2과목 (1) SQL 기본 및 활용 - 관계형 데이스 개요, SELECT문, 함수, WHERE절, GROUP BY절, HAVING절, ORDER BY절, 조인, 표준 조인 (0) | 2025.05.16 |
[SQLD] 1과목(2) - 데이터 모델링의 이해: 정규화, 관계와 조인의 이해, 트랜잭션, NULL 속성, 본질식별자와 인조식별자 (0) | 2025.05.16 |
[SQLD] 1과목(1) - 데이터 모델링의 이해: 데이터 모델의 이해, 엔터티, 속성, 관계 (1) | 2025.05.16 |