[Oracle] 그룹함수

chael_lo·2021년 6월 30일
0

Oracle

목록 보기
13/17

그룹함수의 특징

  • 그룹함수는 다른 검색대상과 같이 사용 불가능
  • 그룹함수는 NULL를 값으로 인식하지 않아 미처리

COUNT(컬럼명)

컬럼값의 갯수를 반환하는 함수
검색행의 갯수를 반환한다.
검색대상의 검색행의 갯수가 서로 다르면 에러가 발생한다.

SELECT COUNT(EMPNO),COUNT(COMM) FROM EMP;

컬럼명 대신 [*]를 사용하여 모든 컬럼으로 테이블에 저장된 행의 갯수를 반환

SELECT COUNT(*) FROM EMP;

MAX(컬럼명)

컬럼값 중 최대값을 반환하는 함수

SELECT MAX(ENAME) FROM EMP;

MIN(컬럼명)

컬럼값 중 최소값을 반환하는 함수

SELECT MIN(HIREDATE) FROM EMP;

SUM(컬럼명)

숫자형 컬럼의 값을 전달받아 합계를 계산하여 반환하는 함수

SELECT SUM(SAL) FROM EMP;

AVG(컬럼명)

숫자형 컬럼의 값을 전달받아 평균을 계산하여 반환하는 함수

SELECT AVG(SAL) FROM EMP;

GROUP BY

그룹함수를 사용할 경우 컬럼값으로 그룹을 구분하여 검색하는 기능
컬럼값이 같은 경우 같은 그룹으로 처리한다.

형식)
SELECT 그룹함수[,검색대상,...] FROM 테이블명,테이블명,... 
[WHERE 조건식]
GROUP BY {컬럼명|연산식|함수},...
[ORDER BY {컬럼명|연산식|별칭|첨자} {ASC|DESC},...]

GROUP BY 구문에서 사용된 그룹 표현식은 그룹함수와 같이 검색대상으로 사용 가능

SELECT DEPTNO,COUNT(*) FROM EMP GROUP BY DEPTNO ORDER BY DEPTNO;

HAVING

GROUP BY 구문으로 그룹화된 검색 결과의 그룹조건을 제공하여 검색하는 기능

형식)
SELECT 그룹함수[,검색대상,...] FROM 테이블명,테이블명,...
[WHERE 조건식]
GROUP BY {컬럼명|연산식|함수},...
HAVING 그룹조건식 
[ORDER BY {컬럼명|연산식|별칭|첨자} {ASC|DESC},...]
--EMP 테이블에서 업무가 [PRESIDENT]인 사원을 제외한
--모든 사원의 업무별 평균 급여 검색하기
SELECT JOB,CEIL(AVG(SAL)) AVG_SAL FROM EMP
GROUP BY JOB HAVING JOB<>'PRESIDENT'; 

profile
천천히 꾸준히

0개의 댓글