이 글은 24.02.19에 본인 벨로그에 작성했던 글을 옮겨 온 것이다.
Project 4. HR 데이터를 통한 채용 기획하기
지난번 내용에 이어서...
DBeaver에 MySQL을 연결해서 사용하고 있다!
SQL분석
Ad hoc Query(2)
- 연봉 협상 전에 전 직원들에게(당연히 재직자들) 내년 예상 연봉 고지를 하기로 한다. 아래 조건에 맞춰서 Salary 관련 지표를 집계하도록 하라.
지표 : 부서/직급/직무 별 평균 월급과 평균 Salary 인상률과 부서/직급/직무 별 내년 추정 월급 및 추정 연봉
1) 부서, 직급, 직무 별 평균 월급과 평균 Salary 인상률
2) 부서, 직급, 직무 별 내년 추정 월급 및 추정 연봉
3) 올해 승진자가 있는 그룹 대상으로 내년 추정연봉이 20만 이상인 그룹 필터링, 추정연봉 내림차순 정렬
Window function
- group by도 집계함수인데, 정확히 어떤 차이점이 있는 거지??
실제 쿼리를 짜서 차이점에 대해 알아보자.
1) group by
2) window function
보다시피 데이터가 줄어들지 않았고, 집계된 값이 우측에 추가되어있다. 사진에선 잘렸지만 저 아래로 쭉쭉 출력되어있다.
어디에 활용할 수 있을까?
예시를 들어 보자.
직급/퍼포먼스별 직원 수를 보고 싶다.
그런데 이와 동시에 해당 직급의 전체 인원 수도 같이 보고 싶다... 고 한다면?
이럴 때 window function을 쓰는 것이다.
퍼포먼스별 전체 인원 수도 같이 보고 싶다면?
역시나 window function을 쓴다
LEAD&LAG
윈도우 함수 중 하나인 LEAD, LAG에 대해 알아보자.
우선, 각각 무슨 뜻인가를 알면 두 함수를 구별하는게 좀 쉬워진다.
즉 아래와 같이 사용되는 윈도우 함수다.
직접 써보자
가져오는 행 수를 조절할 수도 있다.
window function이므로 당연히 over()에 partition by도 써볼 수 있다.
Ad hoc Query(3)
- 부서/직급별로 진급시 연봉 인상률 트렌드를 알고 싶다. 아래의 결과를 출력하는 쿼리를 작성하자(소수점 첫째자리까지).
1) 평균 월급
2) 부서 내에서 직급이 오르면 받게 될(=다음 직급의) 평균 월급
3) 직급별 평균 월급 차이
4) 직급별 평균 월급 인상률 차이
'Data Analysis > Data Analysis' 카테고리의 다른 글
Project 4. HR 데이터를 통한 채용 기획하기 (5) (1) | 2024.03.30 |
---|---|
Project 4. HR 데이터를 통한 채용 기획하기 (4) (1) | 2024.03.30 |
Project 4. HR 데이터를 통한 채용 기획하기 (2) (1) | 2024.03.30 |
Project 4. HR 데이터를 통한 채용 기획하기 (1) (0) | 2024.03.30 |
Project 3. 고객행동 분석을 통한 서비스 헬스체크 (1) | 2024.03.30 |