Database
[눈에확] 초간단 OVER() 함수를 이용한 PARTITION BY 이해
SaintHwang
2020. 8. 5. 18:27
쉽게 생각해서
팀별로 쌓이는 돈을 저장하는 테이블로 가정하였을 때, 팀별 머니 총계는?
예를 들면 이런 테이블이라고 가정하면.......
TEMA_ID MONEY
TEAM1 100
TEAM1 200
TEAM2 700
TEAM3 150
.
.
SELECT TEAM_ID, SUM( MONEY ) OVER (PARTITION BY TEAM_ID) AS 수익
FROM TEAM_TABLE
이경우 머니는 SUM되면서 TEAM_ID 별로 GROUP BY 된다. 즉, PARTITION BY 를 GROUP BY처럼 쓴것
TEAM1 300
TEAM1 300
TEAM2 700
TEAM3 150
DISTINCT 를 이용해서 중복제거만 해주면 원하는 데이터가 나온다.
SELECT DISTINCT TEAM_ID, SUM( MONEY ) OVER (PARTITION BY TEAM_ID) AS 수익
FROM TEAM_TABLE
TEAM1 300
TEAM2 700
TEAM3 150
끝