SELECT문 해석 순서
5: SELECT 컬럼명 AS 별칭, 계산식, 함수식
1: FROM 참조할 테이블명
2: WHERE 컬럼명 | 함수식 비교연산자 비교값
3: GROUP BY 그룹을 묶을 컬럼명 --> 별칭 X
4: HAVING 그룹함수식 비교연산자 비교값
6: ORDER BY 컬럼명 | 별칭 | 컬럼순번 정렬방식 [NULLS FIRST / LAST]
여러개의 값을 묶어서 하나로 처리할 목적으로 사용
--> 그룹으로 묶은 값에 대해서 SELECT절에서 그룹함수를 사용함
GROUP BY 컬럼명 | 함수식, ...
-- EMPLOYEE 테이블에서 부서코드, 부서'별' 급여 합 조회
SELECT DEPT_CODE 부서명 , SUM(SALARY) 합계
FROM EMPLOYEE
GROUP BY DEPT_CODE --> DEPT_CODE가 같은 행끼리 하나의 그룹이 됨
ORDER BY DEPT_CODE;
‼️ GROUP BY 사용시 주의사항
SELECT문에 GROUP BY절을 사용할 경우 SELECT 절에 명시한 조회하려는 컬럼 중 그룹함수가 적용되지 않은 컬럼을 모두 GROUP BY절에 작성해야 함
--> 즉, SELECT절에 작성한 그룹함수를 제외한 조회하려는 컬럼은 모두 GROUP BY절에 작성해서 묶어줘야 한다!!!
-- EMPLOYEE 테이블에서 직급별 인원수가 5명 이하인 직급코드, 인원 수 조회 (직급코드 오름차순)
SELECT JOB_CODE "직급 코드" , COUNT(*) "인원 수"
FROM EMPLOYEE
GROUP BY JOB_CODE
HAVING COUNT(*) <= 5 -->HAVING절에는 그룹 함수가 반드시 작성된다!!
ORDER BY JOB_CODE ;
-->HAVING절에는 그룹 함수가 반드시 작성!
---> 즉, GROUP BY랑 세트 !