자격증/SQLD(완료)
[SQLD] 단답형 부족한 개념 정리
egovici
2022. 3. 8. 02:56
1. CHAR에 대한 DB별 다른 처리
TAB1 COL1 CHAR(10), COL2 CHAR(10)
INSERT INTO TAB1 VALUES('1','');
=> CHAR의 경우 해당 문자 크기만큼 값이 들어오지 않으면 자동으로 공백으로 채우게됨
Oracle
- 채워진 공백에 대해서 LENGTH함수는 1개로 처리
- ''로 들어오는 경우 NULL로 처리
SQL Server
- 채워진 공백에 대해서 LEN함수는 0개로 처리
-''로 들어오는 경우 ''로 그대로 처리
2. Window 함수
SELECT WINDOW_FUNCTION(ARGUMENTS) OVER
([PARTITION BY 칼럼][ORDER BY 절][WINDOWING 절])
FROM 테이블명
WINDOWING절
ROWS|RANGE BETWEEN
UNBOUNDED PRECEDING | CURRENT ROW | VALUE_EXPR PRECEDING/FOLLOWING
AND
UNBOUNDED FOLLOWING | CURRENT ROW | VALUE_EXPR PRECEDING/FOLLOWING
ROWS | RANGE
UNBOUNDED PRECEDING | CURRENT ROW | VALUE_EXPR PRECEDING
DEFUALT
RAGNE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
3. 백분율 Window Function
RATIO_TO_REPORT 함수
- 파티션 내 전체 SUM값에 대한 행렬 칼럼 값의 백분율을 소수점으로 구할 수 있음
- 0< <=1의 범위를 가짐/ 개별 RATIO의 합을 구하면 1이 됨
- SQL Server에서는 지원하지 않는 함수
PERCENT_RANK 함수
- 파티션별 원도우에서 제일 먼저 나오는 것을 0으로, 제일 늦게 나오는 것을 1로 하여 값이 아닌 행의 순서별 백분율을 구함
- 0< <=1의 범위를 가짐
- SQL Server에서는 지원하지 않는 함수
CUME_DIST 함수
- 파티션별 윈도우의 전체건수에서 현재 행보다 작거나 가은 건수에 대한 누적백분율을 구함
- 0< <=1의 범위를 가짐
- SQL Server에서는 지원하지 않는 함수
NTILE 함수
- 파티션별 전체 건수를 ARGUMENT 값으로 N등분한 결과를 구함