본문 바로가기

DB관련/oracle

복수행 함수 - 연산 함수와 그룹함수

연산함수

COUNT 

SUM

AVG

MAX

MIN

ROLLUP :소계값

CUBE :소계 및 전체 총계 

GROUPING: 그룹화 여부 - 결과는 1혹 0

GROUPINGSET: 한번의 질의로 여러개 그룹화

 

그룹화

A.GROUP BY

GOURP BY는 열의 행화 라고 생각하면 쉽다.

테이블이 있으면 왼쪽으로 90도 돌려보자

이때 할 칼럼이 이번에는 행이 되지 않았나? 

이 행이 GROUP 화 된 결과라고 생각하면 쉽다.

 

 

!주의점

1. SELECT 절에서 사용된 그룹함수 이외의 컬럼이나 표현식은 GROUP BY 필수

--not a GROUP BY expression

그룹함수 안쓰면 안해도 된다.

 

2. GROUP BY 절에 사용된 칼럼은 SELECT 절에 사용되지 않아도 된다.

--하지만 결과는 SELECT 되지 않는다.

 

3.GROUP BY 는 alias 로 설정할수 없다.

 

4. 11이후 버전은 정렬시 ORDER BY가 필요하다

 

사용예시

GROUP BY A , 그룹 함수(B) 일때 . A기준으로 그룹화, B를 그룹함수 에 적용

 

B. 조건을 주고 검색하기  : HAVING

단일행 함수의 조건은 WHERE로 찾고

그룹화 같은 복수행 함수의 조건은 HAVING 으로 찾는다.

보통 GROUP BY 뒤에 위치한다.

 

WHERE : 단일행 함수는 선에서 어떤 위치에 있는지 찾는거고

HAVING: 복수행 함수는 선이 그룹화된 면에서 조건에 해당하는 것을 선택한 면이 가지고 있는지 찾는것

 

 

C.기타

RANK : 순위 집계

RANK(조건) WITHIN GROUP(ORDER BY 조건값 칼럼명[ASC|DESC])

 

 

 

'DB관련 > oracle' 카테고리의 다른 글

PL/SQL -2 스칼라 변수  (0) 2021.01.20
PL/SQL -1  (0) 2021.01.20
일반 함수(nvl, nvl2, decode)  (0) 2021.01.15
형과 형 변환 함수  (0) 2021.01.15
숫자 함수, 날짜 함수  (0) 2021.01.15