쉽게 생각해서
팀별로 쌓이는 돈을 저장하는 테이블로 가정하였을 때, 팀별 머니 총계는?
예를 들면 이런 테이블이라고 가정하면.......
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
끝
'Database' 카테고리의 다른 글
[눈에확] 프로시저 만들기 -쉽게 그리고 자세하게 (0) | 2020.08.11 |
---|---|
[눈에확] 프로시저, 함수, 트리거, 커서 개념 (0) | 2020.08.11 |
오라클 초간단 설명 rank, dense rank, rank number (0) | 2020.08.05 |
ERROR 2003 <HY000> 뜰때 해결방법 (0) | 2016.06.22 |
Oracle - index란? (0) | 2016.01.12 |