JongDDA의 한걸음 한걸음씩
SQL - 복수행 함수(그룹함수), GROUP BY 절 본문
● MULTIPLE ROW FUNCTION ==> GROUP FUNCTION(복수행 함수, 그룹함수)
SQL 복수행 함수는 여러개의 데이터가 입력되면 한개의 데이터를 출력해주는 함수이다.
거의 대부분의 그룹 함수는 함수에 *을 사용하면 NULL을 포함하고 컬럼 이름을 쓰면 해당 컬럼에 데이터가 있는 경우만(즉, NULL 값 제외) 작업을 하여 출력한다.
주로 사용하는 그룹함수에는 아래와 같다.
COUNT, SUM, AVG, MAX, MIN
- COUNT() 함수
입력되는 데이터의 총 건수를 반환
- SUM() 함수
입력된 데이터들의 합계 값을 구하는 함수
- AVG() 함수
입력된 값들의 평균 값을 구해주는 함수
- MAX() 함수 / MIN() 함수
MAX() 함수는 주어진 데이터 중에서 가장 큰 값을 돌려주고, MIN() 함수는 가장 작은 값을 반환한다.
*** MAX(), MIN() 함수의 경우 예외적으로 문자와 날짜에도 사용 가능하다.
● GROUP BY 절
GROUP BY 절은 세부적인 그룹핑 조건을 추가한다.
컬럼에 데이터를 그룹화 할 수 있다.
구조
- 컬럼 그룹화
SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼;
- 조건 처리 후 컬럼 그룹화
SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼;
EX)
SELECT DEPTNO, AVG(NVL(SAL,0)) "AVG"
FROM EMP
GROUP BY DEPTNO;
-> DEPTNO 별로 그룹화 하여 평균 급여를 계산하여 출력
EX2)
SELECT DEPTNO, JOB, AVG(NVL(SAL,0)) "AVG_SAL"
FROM EMP
GROUP BY DEPTNO, JOB;
-> DEPTNO 별로 먼저 그룹핑 한 후 같은 부서일 경우 직업별로 한 번 더 분류를 하여 평균 급여 출력
-> 0RDER BY를 통해 정렬할 수 있다.
- HAVING 절
GROUP BY 절에선 조건을 줄 때 HAVING 절을 사용한다.
구조
- 컬럼 그룹화 이후 조건 처리
SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼 HAVING 조건식;
- 조건 처리 후에 컬럼 그룹화 후에 조건 처리
SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼 HAVING 조건식;
EX)
-> 평균 급여가 2000 초과인 부서번호별로 그룹화하여 부서번호가 10 초과인 사원의 부서번호와 평균 급여 출력
========================================
코드 작성 순서 처리하는 순서
SELECT FROM
FROM WHERE
WHERE GROUP BY
GROUP BY HAVING
HAVING SELECT
ORDER BY ORDER BY
'개발 > SQL' 카테고리의 다른 글
SQL - DDL(데이터 정의 언어) (0) | 2021.07.26 |
---|---|
SQL - 조인(JOIN) (0) | 2021.07.25 |
SQL 이란? Window 10 Oracle 11g 다운로드 및 설치 (0) | 2021.07.24 |
SQL - 단일행 함수(SINGLE ROW FUNCTION) (0) | 2021.07.20 |
SQL - SELECT 문 (0) | 2021.07.19 |