2024.07.01
오늘 새로운 팀원들을 만났다. 내향형 분석가들 팀들과 일주일 만에 헤어지게 되어 아쉬웠지만,, 어쩔 수 없죠..
프로그램에서 하라는 대로 또 참여해야 하니까 또 따라 가야지용?
하지만 조큼 심장이 쿵쾅쿵쾅.. 첫 조원들이 너무 좋았던 분들이라 또 내심 긴장 되더라..
그런데 다행히도 새로운 분들도 정말 좋은 분들이라는 생각이 든다.
깔끔하고 진행속도도 좋은 팀워크! 또 파이썬 기초 주간 동안에 함께 잘 성장해 나아가고 싶은 마음이다!
오늘하고 내일까지는 sql에 좀 더 집중을 하기 위해 파이썬 일정은 빼두었다.. 왜냐면 기본 문법만 봐서는 모르겠거든요..
그래서 오늘 배운 새로운 sql 내용! 코드카타를 하며 아~ 윈도우 함수가 이렇게 많았구나! 해서 정리해본다.
✳️ Window 함수
- window 함수 : 행과 행 간의 관계를 쉽게 정의하기 위해 만든 함수
- group by와 window 함수 차이
- group by : group by로 지정해주는 것을 토대로 해당 결과물만 보여줌 (기존 데이터의 행의 수가 줄어든다)
- window 함수 : 기존 데이터의 행의 수가 그대로 유지된다. - window 함수의 구조
함수(컬럼) OVER (PARTITION BY 컬럼 ORDER BY 컬럼)
함수 : Min, Max, Sum, Count, Rank 등과 같은 기존의 함수 or 윈도우 함수용으로 추가된 함수
OVER : over 은 윈도우 함수에서 꼭 들어가야 하며 Over 내부에 Partition By 절과 Order by 절이 들어감
partition by : 전체 집합을 어떤 기준(컬럼)에 따라 나눌 지를 결정하는 부분
order by: 어떤 항목(컬럼)을 기준으로 순위를 정할 지 결정하는 부분
적용할 함수와 Over 절은 윈도우 함수에서 필수적으로 사용되며,
어떤 결과를 만들어 낼 지에 따라 partition by 와 order by 절을 사용
- 그룹 내 집계 관련
SUM : 파티션 별 윈도우의 합을 구할 수 있다. 누적합을 구하는 것도 가능.
MAX : 파티션 별 윈도우의 최댓값을 구할 수 있다.
MIN : 파티션 별 윈도우의 최솟값을 구할 수 있다.
AVG : 파티션 별 윈도우의 평균을 구할 수 있다.
COUNT : 파티션 별 윈도우의 수량을 구할 수 있다. - 그룹 내 순위 관련
RANK () : 순위를 구하는 함수로, 특정 파티션 내에서 순위를 구하거나 전체 데이터에 대한 순위를 구할 수 있다. 동일한 값에 대해선 동일한 순위를 부여한다. (1등, 2등, 2등, 4등 ...)
DENSE_RANK ( ) : RANK와 비슷하지만 동일한 순위를 하나의 건수로 취급한다. (1등, 2등, 2등, 3등 ...)
ROW_NUMBER ( ) : 동일한 값이어도 고유한 순위를 부여한다. 즉 공동 순위가 없다. (1등, 2등, 3등, 4등 ...)
더해서 참고하면 좋은 글
https://schatz37.tistory.com/12
https://moonpiechoi.tistory.com/128
'📒 Today I Learn > 🐬 SQL' 카테고리의 다른 글
[SQL] COALESCE ( ) (0) | 2024.07.02 |
---|---|
[SQL] 문자열에 공백 넣기, CONCAT_WS, NULL과 공백값 구분, NULLIF와 IFNULL (0) | 2024.07.02 |
[SQL] REGEXP, 날짜 추출 함수, 올림/반올림/내림/버림 (0) | 2024.06.26 |
[SQL 기초] 5주차 강의 (0) | 2024.06.24 |
[SQL 기초] 4주차 강의 (0) | 2024.06.24 |