## V3(V2에서 평균연봉이 5000이상인 부서로 추리기)
SELECT D.name AS 부서,
GROUP_CONCAT(E.name) AS 사원리스트,
TRUNCATE(AVG(E.salary), 0) AS 평균연봉,
MAX(E.salary) AS 최고연봉,
MIN(E.salary) AS 최소연봉,
COUNT(*) AS 사원수
FROM emp AS E
INNER JOIN dept AS D
ON E.deptId = D.id
GROUP BY E.deptId
HAVING `평균연봉` >= 5000;
TRUNCATE(나타낼것,소수점자리수)
:소수점 몇째자리까지 표시할 것인지TRUNCATE(AVG(E.salary), 2
=AVG(E.salary)
를 소수점 2째 자리까지 표시한다 => 300.00FROM emp AS E
INNER JOIN dept AS D
2) ON,WHERE
ON E.deptId = D.id
3) 2차 테이블 완성
4) GROUP BY
GROUP BY E.deptId
5) 그룹함수 (MIN,MAX...)
6) 3차 테이블 완성 (GROUP BY가 실행된 결과)
7) HAVING
HAVING 평균연봉 >= 5000;
- 여기서 WHERE
안쓰는 이유는 위에서 그룹함수 적용하고 필터링하려고.
WHERE
은 두번째로 실행됨. 위에를 다 실행해야 '평균연봉'이 생기기때문에 쓸 수 없다.
8) ORDER BY
9) LIMIT