SQL 강의를 시작한지도 벌써 2주라는 시간이 흘렀습니다!
이번주는 코딩 테스트 대비를 위한 문제 풀이와 윈도우 함수 강의가 있었습니다.
# 데이터 분석가 필수 Tool SQL_이준희 강사님
✔️ RANK(), DENSE_RANK(), ROW_NUMBER()
📌 RANK() OVER (): 순위를 매기되, 동일한 값이 있을 경우 같은 순위를 부여한 후 다음 순위는 건너뛴다.
📌 DENSE_RANK() OVER(): 순위를 매기되, 동일한 값이 있을 경우 같은 순위를 부여한 후 다음 순위는 건너뛰지 않는다.
📌 ROW_NUMBER(): 순위와 상관없이 각 행에 고유한 번호를 부여한다.
✔️ PARTITION BY, ORDER BY, ROWS/RANGE
📌 PARTITION BY: 각 행을 유지하면서 각 행에 대한 그룹 내 계산을 수행한다.
ex) customer_id별 rental 횟수
📌 ORDER BY: PARTITION BY에 의해 생성된 각 그룹 내에서 테이터 순서를 지정한다.
ex) customer_id별 rental 횟수를 rental_date 순으로 정렬
📌 ROWS/RANGE: 현재 행을 기준으로 포함될 행의 범위를 지정한다.
ROWS: 물리적 행 위치를 기준으로 범위 설정
RANGE: 값의 범위를 기준으로 범위 설정
- UNBOUNDED PRECEDING: 파티션의 첫 행부터 시작
- UNBOUNDED FOLLOWING: 파티션의 마지막 행까지
- CURRENT ROW: 현재 행 포함
- n PRECEDING/FOLLOWING: 현재 행에서 n행 앞이나 뒤
✔️ LEAD(), LAG(), FIRST_VALUE(), LAST_VALUE()
📌 LEAD(): 현재 행을 기준으로 n행 뒤의 값을 가져온다. (default: 1)
📌 LAG(): 현재 행을 기준으로 n행 앞의 값을 가져온다. (default: 1)
📌 FIRST_VALUE(): 파티션된 윈도우에서 첫번째 값을 가져온다.
📌 LAST_VALUE(): 파티션된 윈도우에서 마지막 값을 가져온다
- 범위를 지정해줘야 한다.
✔️ PERCENT_RANK(), CUME_DIST(), NTILE()
📌 PERCENT_RANK()
: 행의 백분위 순위를 계산한다 (0~1 사이의 값)
📌 CUME_DIST()
: 행의 누적 분포를 계산한다. (0~1 사이의 값)
📌 NTILE(): 행을 n개의 그룹으로 분할한다.
'[패스트캠퍼스] 데이터 분석 부트캠프 13기' 카테고리의 다른 글
[BDA_13기] 12주차_학습일지 (0) | 2024.05.09 |
---|---|
[BDA_13기] 11주차_학습일지 (0) | 2024.05.01 |
[BDA_13기] 8주차_학습일지 (1) | 2024.04.11 |
[BDA_13기] 7주차_학습일지 (0) | 2024.04.03 |
[BDA_13기] 4주차_학습일지 (1) | 2024.03.14 |