inblog logo
|
An's Blog
    코딩테스트SQL

    [코딩테스트] 33. 부서별 평균 연봉 조회하기

    윤설안's avatar
    윤설안
    Apr 18, 2025
    [코딩테스트] 33. 부서별 평균 연봉 조회하기
    Contents
    테이블 index문제예시풀이

    테이블 index

    📌

    HR_DEPARTMENT 

    Column name
    Type
    Nullable
    DEPT_ID
    VARCHAR
    FALSE
    DEPT_NAME_KR
    VARCHAR
    FALSE
    DEPT_NAME_EN
    VARCHAR
    FALSE
    LOCATION
    VARCHAR
    FLASE

    HR_EMPLOYEES 

    Column name
    Type
    Nullable
    EMP_NO
    VARCHAR
    FALSE
    EMP_NAME
    VARCHAR
    FALSE
    DEPT_ID
    VARCHAR
    FALSE
    POSITION
    VARCHAR
    FALSE
    EMAIL
    VARCHAR
    FALSE
    COMP_TEL
    VARCHAR
    FALSE
    HIRE_DATE
    DATE
    FALSE
    SAL
    NUMBER
    FALSE

    문제

    💡
    HR_DEPARTMENT와 HR_EMPLOYEES 테이블을 이용해 부서별 평균 연봉을 조회하려 합니다. 부서별로 부서 ID, 영문 부서명, 평균 연봉을 조회하는 SQL문을 작성해주세요.
    평균연봉은 소수점 첫째 자리에서 반올림하고 컬럼명은 AVG_SAL로 해주세요.
    결과는 부서별 평균 연봉을 기준으로 내림차순 정렬해주세요.

    예시

    notion image

    풀이

    ❗
    HR_EMPLOYEES 에서 부서명을 알아야하기 때문에 컬럼명이 같은 DEPT_ID 로 JOIN 하였다.
    select * from HR_EMPLOYEES et inner join HR_DEPARTMENT dt on et.DEPT_ID=dt.DEPT_ID
    부서의 평균 연봉을 구해야 하기 때문에 DEPT_ID로 group by를 하고, avg(sal)하여 평균을 구하였다.
    select et.DEPT_ID ,dt.DEPT_NAME_EN, avg(sal) AVG_SAL from HR_EMPLOYEES et inner join HR_DEPARTMENT dt on et.DEPT_ID=dt.DEPT_ID group by DEPT_ID order by AVG_SAL desc
    이후 첫째 자리에서 반올림을 하고 소수점을 없애기 위해서 ROUND함수를 사용하였다. 그 후 평균연봉으로 내림차순으로 정렬하였다.
     
    select et.DEPT_ID ,dt.DEPT_NAME_EN, ROUND(avg(sal), 0) AVG_SAL from HR_EMPLOYEES et inner join HR_DEPARTMENT dt on et.DEPT_ID=dt.DEPT_ID group by DEPT_ID order by AVG_SAL desc
     
    Share article
    Contents
    테이블 index문제예시풀이

    An's Blog

    RSS·Powered by Inblog