[SQL] 5. Aggregate Function
2021.02.22 update by 슬픈앙마류
Aggregate Function(집계 함수)
- 그룹 함수 혹은 집계함수라고도 한다.
- 일반적인 함수와는 달리 여러 행을 그룹 단위로 하나의 행으로 결과를 출력한다.
1. 기본적인 사용 방법
- 그룹 함수는 SELECT 절, ORDER BY 절 그리고 HAVING 절에 사용
- 일반적으로 데이터 그룹별 정보의 결과 도출을 위해서 SELECT 절에 사용된 Column을 GROUP BY 절로 묶음
- 만약 SELECT 절에 사용되어진 Column이 GROUP BY 절에 묶이지 않거나, 그 자체로 Aggregate function이 아니라면 오라클은 에러(ORA-00937)를 출력

- DISTINCT를 지정하면 중복되지 않은 값의 결과를 출력
- Datatype 은 CHAR, VARCHAR2, NUMBER, DATE
- COUNT(*)를 제외한 그룹 함수는 null 값을 무시
- GROUP BY 절은 default로 ASC 정렬
2. MIN, MAX 함수
1) MIN/MAX ( [DISTINCT|ALL] expr )
2) 모든 Datatype Datatype에 사용할 수 있다.
MIN(sal), MAX(sal) 은 최저 월급과 최고 월급을 나타내고, hiredate는 가장 오래된 입사일과 최근의 입사일을, Caracter type도 알파벳 순으로 최저 값과 최고 값을 나타내고 있다.

3. AVG, SUM 함수
1) AVG/SUM ( [DISTINCT|ALL] expr )
2) 오직 number Datatype 만 사용할 수 있다.
아래 예제는 CLERK 들의 sal에 대한 최소, 최고, 평균, 합계에 대한 정보를 보여주고 있다.

4. COUNT 함수
1) COUNT( { * | [DISTINCT|ALL] expr } )
2) COUNT(*)는 테이블의 null을 포함한 모든 row 수를 출력
3) COUNT(expr)는 not null인 row 수를 출력
※ COUNT(*) 함수를 제외한 모든 그룹 함수는 null을 무시
※ NVL 함수를 사용해서 null 값을 연산할 수 있도록 지정할 수 있음

5. GROUP BY 절
1) 그룹 함수의 특징은 여러 행의 연산 결과를 하나의 행으로 출력
2) 이러한 여러 행을 하나의 그룹 단위로 생성하려면 GROUP BY 절에 기술
3) 사용 Guide
- SELECT 절에 GROUP 함수로 표현되지 않은 column은 반드시 GROUP BY 절에 표기
- WHERE 절을 사용 시 filtering 된 후의 상황에서 GROUP BY 절이 적용
- GROUP BY 절에 column alias를 사용할 수 없음
- GROUP BY 절에 명시된 column으로 sorting이 일어나며 ORDER BY 절을 사용하게 되면 GROUP BY 절보다 우선


6. HAVING 절(1)
1) Grouping 한 결과에 조건을 부여하고자 할 때 사용
- WHERE 절에서 그룹 함수는 사용되어질 수 없고, HAVING 절을 이용해 조건을 부여
2) SQL문에서 조건을 기술하는 두 개의 절은 WHERE과 HAVING임
3) HAVING 절에 반드시 그룹 함수를 써야 한다거나 GROUP BY 절이 있어야 되는 것만은 아니나, 일반적으로 그룹함수를 사용하기 위한 조건 절로 사용되며 grouping 이후 filtering이 적용

7. HAVING 절(2)
1) 조건의 적용 순서

① job 이 manager 가 아닌 것 중에서
② job 별로 grouping을 하고
③ sal의 합계가 5000을 초과하는
④ job과 sal의 합계를 sal 합계가 오름차순으로 정렬
“파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"
[SQL] 4. Joins
2021.02.22 update by 슬픈앙마류 Join의 활용 - 두 개 이상의 Table, View, 혹은 Materialized View를 조합해서 하는 Query - Join 조건은 Where 절에서 작성하며, 서로 다른 테이블에서 두 개의 column을 비교 -..
nindo.tistory.com
[SQL] 3. Function
2021.02.19 update by 슬픈앙마류 기본적인 문법에 대해서 어는 정도 이해하셨을 것으로 생각합니다. 이번 게시물은 함수의 활용입니다. [SQL] 온라인에서 SQL 실행 TEST하기 2021.02.16 update by 슬픈앙마류 S
nindo.tistory.com
[SQL] 2. 기본 문법(2)
2021.02.18 update by 슬픈앙마류 SQL 공부하기 위한 기본 문법 두 번째 게시물입니다. [SQL] 1. 기본 문법(1) 2021.02.17 update by 슬픈앙마류 SQL을 공부하시는 분들에게 조금이라도 도움이 되고자 기본 문법
nindo.tistory.com
[SQL] 1. 기본 문법(1)
2021.02.17 update by 슬픈앙마류 SQL을 공부하시는 분들에게 조금이라도 도움이 되고자 기본 문법부터 많이 사용하는 기능들과 성능에 관련된 내용들을 간단하게 정리해서 올릴 예정입니다. [SQL] 온
nindo.tistory.com