문제
to_date가 1998년도인 연봉 상위 10% 사원의 정보 조회
WITH salary_ranked AS (
SELECT
a.emp_no,
a.first_name,
a.last_name,
b.salary,
percent_rank() OVER (ORDER BY b.salary DESC) AS percentile
FROM
employees AS a
JOIN (
SELECT
emp_no,
salary
FROM
salaries
WHERE
YEAR(to_date) = 1998 -- 연도 필터링
) b ON a.emp_no = b.emp_no
)
SELECT
emp_no,
first_name,
last_name,
salary,
percentile
FROM
salary_ranked
WHERE
percentile <= 0.1
ORDER BY
salary DESC;
💡 WITH절(가상테이블)
서브쿼리를 만들고 재사용 가능한 공통 테이블 표현식(Common Table Expression, CTE)을 정의하는 방법
💡PERCENT_RANK함수
인수로 지정한 값의 그룹내 상대적 위치를 백분위수 순위로 반환하는 함수 (순위 퍼센트 반환)
'데이터베이스 > Today's Query' 카테고리의 다른 글
[Today's Query] 부서별 연봉 3위까지 사원의 이름과 연봉 조회 (2025/01/08) (0) | 2025.01.08 |
---|---|
[Today's Query] 부서 이동 경험이 있는 사원들의 현재 부서를 조회 (2025/01/07) (0) | 2025.01.07 |
[Today's Query] 부서 평균 연봉보다 연봉이 높은 사원을 조회 (2025/01/06) (0) | 2025.01.06 |
[Today's Query] 재직 중인 개발부서 사원의 최신 연봉 정보를 출력 (2025/01/04) (0) | 2025.01.06 |
[Today's Query] 부서별 직무의 사원수를 계산 (2025/01/02) (0) | 2025.01.06 |