DB 13강

주바나·2023년 3월 10일
0

DB

목록 보기
8/14
post-thumbnail

V3


## 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.00
  • 실행순서
    1) FROM,JOIN
FROM 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

profile
BE -JAVA,Spring boot

0개의 댓글