지난번 내용에 이어서...
DBeaver에 MySQL을 연결해서 사용하고 있다!
지표 : 부서/직급/직무 별 평균 월급과 평균 Salary 인상률과 부서/직급/직무 별 내년 추정 월급 및 추정 연봉
1) 부서, 직급, 직무 별 평균 월급과 평균 Salary 인상률
2) 부서, 직급, 직무 별 내년 추정 월급 및 추정 연봉
3) 올해 승진자가 있는 그룹 대상으로 내년 추정연봉이 20만 이상인 그룹 필터링, 추정연봉 내림차순 정렬

- group by도 집계함수인데, 정확히 어떤 차이점이 있는 거지??
실제 쿼리를 짜서 차이점에 대해 알아보자.
1) group by
2) window function
보다시피 데이터가 줄어들지 않았고, 집계된 값이 우측에 추가되어있다. 사진에선 잘렸지만 저 아래로 쭉쭉 출력되어있다.
어디에 활용할 수 있을까?
예시를 들어 보자.
직급/퍼포먼스별 직원 수를 보고 싶다.
그런데 이와 동시에 해당 직급의 전체 인원 수도 같이 보고 싶다... 고 한다면?
이럴 때 window function을 쓰는 것이다.
퍼포먼스별 전체 인원 수도 같이 보고 싶다면?
역시나 window function을 쓴다
윈도우 함수 중 하나인 LEAD, LAG에 대해 알아보자.
우선, 각각 무슨 뜻인가를 알면 두 함수를 구별하는게 좀 쉬워진다.
즉 아래와 같이 사용되는 윈도우 함수다.

직접 써보자
가져오는 행 수를 조절할 수도 있다.
window function이므로 당연히 over()에 partition by도 써볼 수 있다.
1) 평균 월급
2) 부서 내에서 직급이 오르면 받게 될(=다음 직급의) 평균 월급
3) 직급별 평균 월급 차이
4) 직급별 평균 월급 인상률 차이