반응형
종종 누적집계 함수가 헷갈린다..
- 빅쿼리에도 쓸수 있음. 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 가 필요할 것 같음.)
반응형
'sql' 카테고리의 다른 글
sql 윈도우 함수 count over partition by (Feat.리트코드) (0) | 2023.01.25 |
---|---|
인덱스 잘 타네요 라고 말할 수 있는 사람 되는 법 (1탄. 인덱스란?) (0) | 2023.01.19 |
sql join 예제(조건에 따른 join) (0) | 2023.01.17 |