[SQL 고득점 Kit] 조건에 맞는 사원 정보 조회하기

썹스·2024년 3월 18일

❓ 문제

HR_DEPARTMENT, HR_EMPLOYEES, HR_GRADE 테이블에서 2022년도 한해 평가 점수가 가장 높은 사원 정보를 조회하려 합니다. 2022년도 평가 점수가 가장 높은 사원들의 점수, 사번, 성명, 직책, 이메일을 조회하는 SQL문을 작성해주세요.

2022년도의 평가 점수는 상,하반기 점수의 합을 의미하고, 평가 점수를 나타내는 컬럼의 이름은 SCORE로 해주세요.

❗️ 문제 풀이

with tb as (
    select
        EMP_NO
        ,sum(SCORE) as SCORE
    from HR_GRADE
    group by EMP_NO
    order by 2 desc
    limit 1
)

select
    tb.SCORE
    ,E.EMP_NO
    ,E.EMP_NAME
    ,E.POSITION
    ,E.EMAIL
from HR_EMPLOYEES as E, tb
where 1=1
    and E.EMP_NO = tb.EMP_NO

📚 느낀점

HR_DEPARTMENT테이블을 사용할 필요가 없었다... (이게 맞는 건가?)

사실 order by <칼럼명> desc limit 1max(<칼럼명>)은 성능 차이가 존재한다.
최댓값을 찾을 때는 max(<칼럼명>)를 사용하는 것이 조금 더 성능이 좋지만, 막상 문제를 풀 때 생각이 나질 않았다...

다양한 SQL의 기능을 자유롭게 사용할 수 있도록 끊임없는 공부가 필요하다 느꼈다 :)



🔗 Reference

https://school.programmers.co.kr/learn/courses/30/lessons/284527

profile
코린이

0개의 댓글