반응형
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 인 컬럼명도 그룹화해줘야함. 안그러면 논리적 문제가 발생 할 수있음
반응형
'필기ㆍ코테 공부 > SQL' 카테고리의 다른 글
[프로그래머스/MYSQL] NULL 처리하기 (2) | 2024.12.29 |
---|---|
[프로그래머스/MYSQL] 조건에 맞는 사원 정보 조회하기 (1) | 2024.12.28 |
[프로그래머스/MYSQL] 가격대 별 상품 개수 구하기 (2) | 2024.12.22 |
[프로그래머스/MYSQL] 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2024.12.22 |
[프로그래머스/MYSQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.12.22 |