반응형

종종 누적집계 함수가 헷갈린다..
- 빅쿼리에도 쓸수 있음. mysql 버전으로 작성

- sum over
예제

- gender, day가 나오면서 score_points 를 누적 집계 하려면

# Write your MySQL query statement below
select gender, day, sum(score_points) over( partition by gender order by gender, day) as total 
from Scores group by 1,2 order by 1,2

- 누적집계할 컬럼을 sum() 안에 넣어준다 => sum(score_points)
- over() 안에 값을 입력
-크게는 gender 별로 누적집계를 보고 싶은 것이니 partition by gender (누적되어 나오는 마지막 값은 성별 누적값을 보고 싶다는 뜻.)
-누적 집계는 순서가 중요함. order by 다음에 gender, day 로 날짜별로 누적되어 나오게 설정.

결과


꿀팁
Sum over 쓸때 partition by 를 안해도 되고 (이때는 전체 테이블이 Order by 기준으로만 누적집계 되어 나옴)
order by 가 안들어가도 됨 (거의 쓸일 없을듯? 뭐.. 한달 급여 테이블이 있고 사원이 있고 지불된 총 한달 급여를 보고 싶으면 쓰겠지만 웬만해서는 Order by 가 필요할 것 같음.)

반응형

+ Recent posts