Oracle SQL # 6. Function - Multi Row Function

Su Yeon·2021년 3월 24일

Oracle SQL

목록 보기
6/6

Group Function (Multi Row Function )

여러 행을 그룹으로 하여 하나의 행으로 결과값을 반환하는 함수입니다.
반환되는 행의 개수가 달라지기 때문에 그룹으로 묶을 기준을 잘 정해야 합니다.

COUNT
: 행의 숫자 (그룹핑된 행 중에 값이 null이 아닌 행의 건수)

COUNT(*)
: 그룹핑된 모든 행 건수

MAX
: 최대값

MIN
: 최소값

SUM
: 합계

AVG
: 평균



GROUP BY

그룹 함수의 결과는 GROUP BY절에 온 컬럼의 행 개수로 결정됩니다.

  • 위치
SELECT
FROM
WHERE
GROUP BY column
HAVING group function condition 
ORDER BY column
  • 주의할 점
  1. 그룹 함수에서는 null 값이 자동으로 계산에서 제외 (NULL처리 함수를 쓸 필요 없음)

  2. GROUP BY 절에 작성된 컬럼이 아닌 컬럼은 SELECT절에 올 수 없음
    (하나의 값으로 고정된 상수는 올 수 있음. 즉, 그룹핑으로 행의 수가 줄어든 상태이니, 행의 수가 다른 컬럼은 오지 못하는 것)

    SELECT ~~empno~~, MAX(sal)  --> empno 컬럼 때문에 에러
    FROM emp
    GROUP BY deptno;
  1. 그룹함수의 조건은 WHERE절 말고 HAVING 절에 씀
    SELECT deptno
    FROM emp
    GROUP BY deptno
    HAVING COUNT(*) >= 4; --> 행의 개수가 4개 이상인 부서만 조회 
  • 흔히 쓰는 패턴 : 테이블의 전체 행을 구하기
    SELECT COUNT(*) --> 그룹을 지정하지 않으면 전체 행의 숫자를 카운트
    FROM emp;

0개의 댓글