250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스
- f-string
- 한줄for문
- SQL
- 리스트
- 선형회귀
- Til
- ★
- 아티클스터디
- 시각화
- 이중for문
- python
- 태블로
- Max
- DATE_SUB
- 가설검정
- 반복문
- Join
- 내일배움일지
- Leetcode
- map
- 내일배움캠프
- 내배캠_학습기록
- 데이터전처리
- Set
- SQLD
- 다중공선성
- 통계학
- AB테스트
- 데이터시각화
Archives
- Today
- Total
노력에는 지름길이 없으니까요
윈도우 함수 정리 본문
728x90
윈도우 함수란?
윈도우 프레임이라는 범위 내부에 포함된 값을 자유롭게 사용
기존에 있던 원래 값은 그대로 두고 집계 값만 추가로 구할 수 있게 함
GROUP BY 와 PARTITON BY의 차이
GROUP BY 절 : 특정 기준으로 데이터를 정의하고자 할 때
집계 함수를 사용하여 기존 행에 있던 값들을 계산한 후 새로운 행에 입력해 줄 수도 있습니다. 집계 함수는 데이터를 하나로 합쳐줍니다. 합치는 과정에서, 우리는 기존의 상세 데이터들을 잃게 됩니다. 집계 함수의 종류는 다양하지만, 그중 가장 많이 사용되는 함수는 COUNT, SUM, AVG, MIN, MAX 함수가 있습니다.
PARTITON BY 절 : 특정 기준에 한정하여 집계된 값을 계산
PARTITION BY를 사용하면, GROUP BY와는 달리 기존 행의 세세한 정보들은 사라지지 않고 그대로 유지됩니다. 즉, 기존의 데이터와 집계된 값을 함께 나란히 볼 수 있다는 이야기입니다.
RANK
10위 10위 12위 13위 13위 15위
SELECT
customer_id,
price ,
RANK() OVER (ORDER BY price DESC) R
FROM food_orders fo
GROUP BY price
DENSE_RANK : RANK와 유사하지만 숫자가를 뛰어넘어 순위를 부여하지 않음
10위 10위 11위 12위 12위 13위
SELECT
customer_id,
price ,
DENSE_RANK() OVER (ORDER BY price DESC) R
FROM food_orders fo
GROUP BY price
#코드는 다음과 같다. 같은 값이 없는 듯 하여서...
#다음에 테이블 하나 만들어서 확인해보는 걸로
ROW_NUMBER
각 행에 인덱스 부여
SELECT
ROW_NUMBER() OVER (),
customer_id,
price
FROM food_orders fo
GROUP BY price
NTILE
TILE 함수는 특정한 컬럼의 값을 기준으로 N개의 등급으로 분류하여 주는 함수
SELECT
NTILE(4) OVER (ORDER BY price),
COUNT(1) OVER (PARTITION BY customer_id),
customer_id,
price
FROM food_orders fo
GROUP BY price
LAG/LEAD
특정 행 이전 혹은 이후의 행을 반환
누적합계 구하기
SELECT
customer_id,
price,
SUM(price) OVER(PARTITION BY customer_id ORDER BY customer_id) "ID별총합",
SUM(price) OVER(ORDER BY customer_id) "누적총합",
SUM(price) OVER() "전체총합"
FROM food_orders fo
ORDER BY customer_id
참고한 사이트 :
728x90
반응형
'Python' 카테고리의 다른 글
join 사용법 (0) | 2024.07.05 |
---|---|
tuple과 SET (0) | 2024.06.28 |
DFS 총정리 (0) | 2024.06.21 |
제일 작은 수 제거하기 - min을 이용해서 간단히 풀기 (0) | 2024.06.18 |
약수의 합 (0) | 2024.06.18 |