일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- StringTokenizer
- Node
- biginteger사용법
- 오블완
- CSS 기초
- 티스토리챌린지
- K-MOOC
- 디스크블록할당
- national instruments
- attribute
- 블록체인강의
- 블록체인 강의
- 컴파일시스템
- 우선순위큐
- 자바입력받기
- 시스템프로그래밍
- 단국대학교 k-mooc
- 머신러닝
- K-MOOC 단국대학교 홍보단
- 혁신의기술2:신뢰의미래 블록체인을 만나다
- html기초
- 해시
- 딥러닝
- stringreader
- StringBuilder
- Entity
- 2차원배열정렬
- 블록체인
- 자바문자열구분
- 자바스크립트
- Today
- Total
열정 실천
[SQLD] 005. SQL 활용 - 서브쿼리, 집합 연산자, 그룹 함수, 원도우 함수 본문
| 01 | 서브 쿼리
하나의 쿼리 안에 존재하는 또 다른 쿼리
Scalar SubQuery 스칼라 서브쿼리
주로 SELECT 절에 위치하지만 컬럼이 올 수 있는 대부분의 위치에 사용
컬럼 대신 사용됨으로 반드시 하나의 값만을 반환해야 한다.
Inline View 인라인 뷰
FROM 절 등 테이블 명이 올 수 있는 위치에 사용
Nested Subquery 중첩 서브쿼리
WHERE 절과 HAVING 절에 사용
| 02 | 뷰(view)
특정 SELECT 문에 이름을 붙여서 재사용이 가능하도록 저장해놓은 오브젝트이다. SQL에서 테이블처럼 사용할 수 있다.
- 보안성 : 보안이 필요한 컬럼을 가진 테이블일 경우 해당 컬럼을 제외한 별도의 뷰를 생성하여 제공한다.
- 독립성 : 테이블 스키마가 변경되었을 경우 어플리케이션은 변경하지 않고 관련 뷰만 수정한다.
- 편리성 : 복잡한 쿼리 구문을 뷰명으로 단축시킴으로써 가독성을 높이고 편리하게 사용할 수 있다.
| 03 | 집합 연산자
UNION ALL | 각 쿼리의 결과 집합의 합집합. 중복 O |
UNION | 각 쿼리의 결과 집합의 합집합. 중복 X |
INTERSECT | 각 쿼리의 결과 집합의 교집합. 중복 O |
MINUS/EXCEPT | 앞에 있는 쿼리의 결과에서 뒤에 있는 쿼리의 결과를 뺀 차집합. 중복 X |
| 04 | 그룹 함수
데이터를 GROUP BY하여 나타낼 수있는 데이터를 구하는 함수
[ 역할에 따른 구분 ]
집계 함수 | COUNT, SUM, AVG, MAX, MIN |
소계(총계) 함수 | ROLLUP, CUBE, GROUPING SETS |
1. ROLLUP : 소그룹 간의 총계를 계산하는 함수
ROLLUP(A) | - A로 그룹핑 - 총합계 |
ROLLUP(A, B) | - A, B로 그룹핑 - A로 그룹핑 - 총합계 |
ROLLUP(A, B, C) | - A, B, C로 그룹핑 - A, B로 그룹핑 - A로 그룹핑 - 총합계 |
2. CUBE : 조합할 수 있는 모든 그룹에 대한 소계를 계산하는 함수
CUBE(A) | - A로 그룹핑 - 총합계 |
CUBE (A, B) | - A, B로 그룹핑 - A로 그룹핑 - B로 그룹핑 - 총합계 |
CUBE(A, B, C) | - A, B, C로 그룹핑 - A, B로 그룹핑 - A, C로 그룹핑 - B, C로 그룹핑 - A로 그룹핑 - B로 그룹핑 - C로 그룹핑 - 총합계 |
3. GROUPING SETS : 특정 항목에 대한 소계를 계산하는 함수.
GROUPING SETS (A) | - A로 그룹핑 - B로 그룹핑 |
GROUPING SETS (A, B, ( ) ) | - A로 그룹핑 - B로 그룹핑 - 총합계 |
GROUPING SETS (A, ROLLUP(B)) |
- A로 그룹핑 - B로 그룹핑 - 총합계 |
GROUPING SETS (A, ROLLUP(B, C)) | - A로 그룹핑 - B, C로 그룹핑 - B로 그룹핑 - 총합계 |
GROUPING SETS (A, B, C) | - A로 그룹핑 - B로 그룹핑 - C로 그룹핑 - 총합계 |
* 총계를 더해주려면 인자값에 ( )를 추가해주거나 ROLLUP을 적용해주면 된다.
4. GROUPING : ROLLUP, CUBE, GROUPING SETS 등과 함께 쓰이며 소계를 나타내는 Row를 구분할 수 있게 해줌
| 05 | 윈도우 함수
순위 함수 | RANK, DENSE._RANK, ROW_NUMBER |
집계 함수 | SUM, MAX, MIN, AVG, COUNT |
행 순서 함수 | FIRST_VALUE, LAST_VALUE, LAG, LEAD |
비율 함수 | CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT |
1. 순위 함수
- RANK : 순위를 매기면서 같은 순위가 존재하면 존재하는 수만큼 다음 순위를 건너뛴다. (1,2,2,4,5,5,7 ...)
- DENSE_RANK : 순위를 매기면서 같은 순위가 존재하더라고 다음 순위를 건너뛰지않는다. (1,2,2,3,4,4,5, ...)
- ROW_RANK : 순위를 매기면서 동일한 값이라도 각기 다른 순위를 부여한다. (1,2,3,4,5,6,7 ...)
2. 집계함수
- SUM : 데이터의 합계를 구하는 함수이다. 숫자형만 인자값으로 올 수 있다.
- MAX : 데이터의 최댓값을 구하는 함수이다.
- MIN : 데이터의 최솟값을 구하는 함수이다.
- AVG : 데이터의 평균값을 구하는 함수이다.
- COUNT : 데이터의 건수를 구하는 함수이다.
3. 행 순서 함수
- FIRST_VALUE : 파티션 별 가장 선두에 위치한 데이터를 구하는 함수이다.
- LAST_VALUE : 파티션 별 가장 끝에 위치한 데이터를 구하는 함수이다.
- LAG : 파티션 별로 특정 수만큼 앞에있는 데이터를 구하는 함수이다.
- ELAD :
4.
'CS > DATABASE' 카테고리의 다른 글
[SQLD] 004. SQL 기본 2 - JOIN의 종류 (3) | 2024.11.13 |
---|---|
[SQLD] 003. SQL 기본 1 - 함수, SELECT, WHERE, GROUP BY, ORDER BY (1) | 2024.11.08 |
[SQLD] 002. 데이터 모델과 SQL (2) | 2024.11.07 |
[SQLD] 001. 데이터 모델링의 이해 (4) | 2024.10.24 |
010. ERD-to-Realation __ E-R 다이어그램보고 테이블 만들기 (0) | 2024.10.05 |