180305 Oracle SQL 함수 1 2 - RYUDONGJIN/Memo_wiki GitHub Wiki

그룹함수

  • 하나 이상의 행을 그룹으로 묶어 연산하여 총합, 평균 등 하나의 결과로 나타낸다.
  • SUM : 그룹의 누적 합계를 반환
  • AVG : 그룹의 평균을 반환
  • COUNT : 그룹의 총 개수를 반환 => 테이블에서 조건을 만족하는 행의 개수를 반환
  • MAX : 그룹의 최대값을 반환
  • MIN : 그룹의 최소값을 반환
  • STDDEV : 그룹의 표준편차를 반환
  • VARIANCE : 그룹의 분산의 반환

GROUP BY 절

  • 어떤 컬럼 값을 기준으로 그룹함수를 적용할 경우 GROUP BY 절 뒤에 해당 컬럼을 기술 / 별칭 사용 금지
SELECT deptno FROM emp GROUP BY deptno;

SELECT deptno, AVG(sal) FROM emp GROUP BY deptno;

SELECT job, count(job), TRUNC(AVG(sal)) FROM emp GROUP BY job;

HAVING 절

  • SELECT 절에 조건을 사용하여 결과를 제한할 때는 WHERE절을 사용하지만 그룹의 결과(GROUP BY)를 제한할 때는 HAVING절을 사용
  • WHERE절을 사용하면 오류
SELECT deptno, AVG(sal) FROM Emp GROUP BY deptno HAVING AVG(sal) < 2000;

SELECT deptno, MAX(sal), MIN(sal) FROM emp GROUP BY deptno HAVING MAX(sal)>2900;