SELECT - 형변환 함수, 그룹함수 GROUP BY & HAVING

Liberte Koo·2022년 12월 23일
0

Database

목록 보기
3/12

형변환 함수

GROUP BY

조건이 걸리는 순서가 아래와 같으므로, 원하는 데이터를 순서에 맞춰 넣어줘야한다.

5 SELECT
1 FROM
2 WHERE
3 GROUP BY
4 HAVING
6 ORDER BY

조회되는 모든 ROW가 하나의 그룹. 23명 전체의 급여 합계

SELECT SALARY FROM EMPLOYEE;
SELECT SUM(SALARY) FROM EMPLOYEE;
SELECT SUM(SALARY) FROM EMPLOYEE WHERE DEPT_CODE='D9';
-- DEPT_CODE가 동일한 ROW를 하나의 그룹
SELECT DEPT_CODE, SUM(SALARY) FROM EMPLOYEE GROUP BY DEPT_CODE;
-- GROUP BY 컬럼이 아니라 값

SELECT
DECODE(SUBSTR(EMP_NO,8,1),'1','남자','2','여자') 성별,
COUNT(*) 인원수,
SUM(SALARY) 급여합계,
AVG(SALARY) 급여평균
FROM EMPLOYEE
GROUP BY DECODE(SUBSTR(EMP_NO,8,1),'1','남자','2','여자');

그룹평균을 구한 후 평균급여가 300만원 이상인 부서만 출력

HAVING은 GROUP BY 결과로 나온 데이터에 조건을 부여하는 경우

SELECT DEPT_CODE, FLOOR(AVG(SALARY)) 평균급여
FROM EMPLOYEE
GROUP BY DEPT_CODE
HAVING FLOOR(AVR(SALARY)) >= 3000000
ORDER BY 2 DESC;

profile
A previous generalist who strives to become a genuine Specialist.

0개의 댓글