GROUP BY = 특정 컬럼을 기준으로 집계를 내는데 사용된다.
실습 환경
Windows 10
Oracle 11g Express Edition Release 11
Oracle SQL Developer
Database ( hr ) - hr 테이블은 오라클에서 지원하는 테이블입니다.
COUNT와 GROUP BY를 활용한 명령어 1
SELECT department_id , COUNT(*) FROM employees
GROUP BY department_id ;
위에서 설명하듯이 GROUP BY란 컬럼을 기준으로 집계를 내는걸로 사용한다.
코드로 본다면 SELECT 로 department_id , COUNT(*) 값을 employees 라는 테이블에서 참조해서 출력하는데
그 값을 GROUP BY 한다 기준은 department_id로 해서. 라고 생각하면 좋다.
COUNT와 GROUP BY를 활용한 명령어 2
SELECT department_id , JOB_ID , COUNT(*) FROM employees
GROUP BY department_id , JOB_ID;
위 예제랑 비슷하다. -> 컬럼이 1개 추가된 것 뿐이다.
설명은 따로 하지 않아도 위 예제를 이해 했다면 이번 예제는 쉽게 이해 할 수 있다.
이 예제는 JOB_ID 컬럼을 추가한거고 그에 따른 GROUP BY절에 JOB_ID를 추가해줬을 뿐이다.
AVG와 GROUP BY를 활용한 명령어
SELECT department_id , JOB_ID , AVG(salary) FROM employees
GROUP BY department_id , JOB_ID;
AVG는 에버레이지 함수이다. AVG(salary)는 평균을 구할 컬럼을 조건으로 준 것이다. salary는 employees에 있다.
전체적 개념은 위와 비슷한 개념으로 접근 하면된다
GROUP BY department_id , JOB_ID; 라는 조건으로 집계를 한다 그렇다면 department_id와 JOB_ID값이 같은 데이터를 집계 할것 이다 그중에서 AVG(salary) 값을 순서대로 집계해서 출력해준다.
'DATABASE > ORACLE' 카테고리의 다른 글
Oracle - Decode (0) | 2022.03.15 |
---|---|
Oracle - NVL , NVL2 , COALESCE (0) | 2022.03.15 |
Oralce - TO_CHAR () (0) | 2022.03.14 |
Oralce - HAVING (0) | 2022.03.14 |
Oracle - DISTINCT(중복제거) (0) | 2022.03.14 |