반응형

출저:프로그래머스
출저 :프로그래머스
출저:프로그래머스

GROUP BY

문제풀이

 

A1. INNER JOIN 사용

SELECT  A.DEPT_ID, A.DEPT_NAME_EN, ROUND(AVG(B.SAL), 0) AS AVG_SAL
FROM HR_DEPARTMENT AS A
INNER JOIN HR_EMPLOYEES AS B ON A.DEPT_ID = B.DEPT_ID
GROUP BY A.DEPT_ID,  A.DEPT_NAME_EN
ORDER BY AVG_SAL DESC

 

 

※ 문제 피드백

 

1) LEFT JOIN 틀린점 : 모든 부서를 포함하며, 직원이 없는 부서도 결과에 포함. 이 경우 AVG(B.SAL)은 NULL 값이 발생할 수 있음

2) 해당 문제에서는 A.DEPT_ID 만 그룹화해도 됐지만, 비집계함수인  A.DEPT_NAME_EN 인 컬럼명도 그룹화해줘야함. 안그러면 논리적 문제가 발생 할 수있음

반응형

+ Recent posts

// 기업0 D-Day (표지) // 기업2 D-Day