학습자료(~2017)/오라클

4.오라클 - 그룹, 함수

단세포소년 2011. 3. 11. 00:41
반응형

함수
MAX() : 최대값
AVG([DISTINCT | ALL] n ) : NULL을 무시한 평균
COUNT({* | [DISTINCT | ALL] expr }) : NULL을 무시하지만 * 이라면 NULL과 중복을 포함
MAX([DISTINCT | ALL] expr) : NULL 값 무시 expr의 최대값
MIN([DISTINCT | ALL] expr) :  NULL 값 무시 expr의 최소값
STDDEV([DISTINCT | ALL] n) : NULL값 무시한 n의 표준 편차
SUM([DISTINCT | ALL] n ) : NULL값 무시한 n의 합계
VARIANCE([DISTINCT | ALL] n) : NULL값 무시한 n의 분산

예) SELECT SUM(sal),AVG(sal) FROM 테이블명




. 그룹 함수는 열에 있는 NULL 값을 무시한다.
. NULL 값을 포함하기 위해서는 NVL 함수를 사용한다.
 예) SELECT AVG(NVL(comm, 0)) FROM emp
   NVL 은 어떤 값이 널일때 원하는 값으로 값을 치환한다.




행 그룹화 : GROUP BY
예) SELECT deptno, MAX(sal) FROM emp GROUP BY deptno;
예)오류: SELECT deptno , MAX(sal) FROM emp
   -> deptno 는 비그룹함수 , MAX는 그룹함수 이다. 그래서 위 문장은 오류이다.
예)GROUP BY deptno, job ;
  - > 컬럼 순서에 따라 표현 순서가 다르다. 컬럼 다수를 묶어서 그룹화 가능



☆☆ GROUP 결과 제한 : HAVING 을 이용
 - > GROUP BY 사용시 그룹에 대한 제한은 HAVING 을 사용한다. (평상시는 WHERE 이용)
예) SELECT deptno , MAX(sal) FROM emp GROUP BY deptno HAVING MAX(sal) >= 2900 ;
예) SELECT job, SUM(sal) FROM emp WHERE job <> 'SALSMAN' GROUP BY job HAVING SUM(sal) > 5000 ORDER BY SUM(sal);




그룹함수 사용 요약
. 단일 함수는 하나의 행에 대해 하나의 결과 리턴
. 그룹 함수는 하나 이상의 행에 대해 하나의 결과 리턴
. 그룹 함수는 GROUP BY 절과 함께 사용되어 행을 그룹화
. 그룹 합수는 연산대상에 NULL을 포함하지 않음
. COUNT 함수의 *, NVL 함수 등을 이용하여 NULL 값을 포함할수 있다.
. 그룹의 결과를 제한하기 위해서 HAVING 절 사용
반응형

'학습자료(~2017) > 오라클' 카테고리의 다른 글

6. 오라클 - Sub Query  (0) 2011.03.11
5. 오라클 - 조인  (0) 2011.03.11
3. 오라클 - 데이터 제한 및 정렬  (0) 2011.03.10
2. 오라클 - 기본 질의문  (0) 2011.03.10
1. 오라클  (0) 2011.03.10