콘텐츠로 건너뛰기
목록으로

부서별 급여 순위

Programmers SQL
Silver윈도우 함수RANKPARTITION BY

employees 테이블에서 각 부서 내 직원들의 급여 순위(RANK)와 부서 평균 급여를 함께 조회하세요. 결과는 부서별, 순위순으로 정렬되어야 합니다. 테이블 컬럼: employee_id, department, salary, hire_date

AI 분석 결과

0우수

AI 분석 점수

AlgoSu AI가 생성한 실제 분석 샘플입니다.

윈도우 함수를 활용한 부서별 급여 집계 쿼리로 기본 구조가 올바릅니다. CTE로 리팩터링하면 가독성과 재사용성이 크게 향상됩니다.

시간: O(n log n)공간: O(n)

카테고리별 점수

correctness88

PARTITION BY와 ORDER BY를 올바르게 사용하여 부서별 정확한 순위를 산출합니다.

efficiency82

윈도우 함수는 GROUP BY 대비 원본 행과 집계를 함께 반환하므로 적절한 선택입니다. department, salary 복합 인덱스 추가를 권장합니다.

readability88

컬럼명과 별칭이 명확하고 들여쓰기가 일관적입니다. CTE로 감싸면 재사용성이 높아집니다.

bestPractice80

WITH(CTE)를 사용하면 서브쿼리를 이름으로 참조할 수 있어 복잡한 분석 쿼리의 유지보수성이 향상됩니다.

제출 코드

1SELECT
2  employee_id,
3  department,
4  salary,
5  RANK() OVER (
6    PARTITION BY department
7    ORDER BY salary DESC
8  ) AS dept_rank,
9  AVG(salary) OVER (PARTITION BY department) AS dept_avg
10FROM employees
11ORDER BY department, dept_rank;

개선된 코드 예시

1WITH ranked AS (
2  SELECT
3    employee_id,
4    department,
5    salary,
6    RANK() OVER (
7      PARTITION BY department
8      ORDER BY salary DESC
9    ) AS dept_rank,
10    ROUND(
11      AVG(salary) OVER (PARTITION BY department),
12      2
13    ) AS dept_avg_salary
14  FROM employees
15)
16SELECT *
17FROM ranked
18ORDER BY department, dept_rank;

이 분석은 샘플입니다. 내 코드도 AI로 분석받으세요.

회원가입 →
AlgoSu