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 1과 max(<칼럼명>)은 성능 차이가 존재한다.
최댓값을 찾을 때는 max(<칼럼명>)를 사용하는 것이 조금 더 성능이 좋지만, 막상 문제를 풀 때 생각이 나질 않았다...
다양한 SQL의 기능을 자유롭게 사용할 수 있도록 끊임없는 공부가 필요하다 느꼈다 :)
https://school.programmers.co.kr/learn/courses/30/lessons/284527