SELECT 칼럼1,칼럼2
FROM 조회할 테이블명
WHERE 조회조건
GROUP BY
HAVING
ORDER BY 정렬방법
SELECT 칼럼 5
FROM 테이블 1
WHERE 조건 2
GROUP BY 그룹 3
HAVING 그룹조건 4
ORDER BY 정렬 6
SELECT DEPARTMENT_ID -- GROUP BY 절에서 지정한 칼럼만 조회할 수 있다.
, COUNT(*)
FROM EMPLOYEES
GROUP BY DEPARTMENT_ID;
SELECT JOB_ID
, ROUND(AVG(SALARY), 2)
FROM EMPLOYEES
GROUP BY JOB_ID;
SELECT SUBSTR(PHONE_NUMBER, 1, 3)
, SUM(SALARY)
FROM EMPLOYEES
GROUP BY SUBSTR(PHONE_NUMBER, 1, 3);
참고. GROUP BY 절 없이 통계내기
SELECT DISTINCT DEPARTMENT_ID
, COUNT(*) OVER(PARTITION BY DEPARTMENT_ID)
, ROUND(AVG(SALARY) OVER(PARTITION BY DEPARTMENT_ID), 2)
FROM EMPLOYEES;
GROUP BY 절 이후에 나타난다.
GROUP BY 절을 이용한 조회 결과에 조건을 지정하는 경우에 사용한다.
GROUP BY 절이 필요하지 않는 조건은 WHERE 절로 지정한다.
사원 테이블에서 각 부서별 사원수가 20명 이상인 부서를 조회하시오.
-- 조건 : 부서별사원수 >= 20
-- 조건에서 사용되는 부서별사원수는 GROUP BY 절이 필요하므로 HAVING 절로 처리
SELECT DEPARTMENT_ID
, COUNT(*)
FROM EMPLOYEES
GROUP BY DEPARTMENT_ID
HAVING COUNT(*) >= 20;
SELECT DEPARTMENT_ID
, COUNT(*)
FROM EMPLOYEES
WHERE DEPARTMENT_ID IS NOT NULL
GROUP BY DEPARTMENT_ID;
티스토리
-DQL예제(hr)
https://hyeonju50.tistory.com/19
-SELECT 실행 순서
https://hyeonju50.tistory.com/21
-연습문제_DQL
https://hyeonju50.tistory.com/24