조건이 걸리는 순서가 아래와 같으므로, 원하는 데이터를 순서에 맞춰 넣어줘야한다.
5 SELECT
1 FROM
2 WHERE
3 GROUP BY
4 HAVING
6 ORDER BY
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','여자');
HAVING은 GROUP BY 결과로 나온 데이터에 조건을 부여하는 경우
SELECT DEPT_CODE, FLOOR(AVG(SALARY)) 평균급여
FROM EMPLOYEE
GROUP BY DEPT_CODE
HAVING FLOOR(AVR(SALARY)) >= 3000000
ORDER BY 2 DESC;