본문 바로가기
IT 이야기/SQL

[SQL] 5. Aggregate Function

by 슬픈앙마류™ 2021. 2. 22.
반응형

2021.02.22 update by 슬픈앙마류


Aggregate Function(집계 함수)

  - 그룹 함수 혹은 집계함수라고도 한다.

  - 일반적인 함수와는 달리 여러 행을 그룹 단위로 하나의 행으로 결과를 출력한다.


1. 기본적인 사용 방법

  - 그룹 함수는 SELECT 절, ORDER BY 절 그리고 HAVING 절에 사용

  - 일반적으로 데이터 그룹별 정보의 결과 도출을 위해서 SELECT 절에 사용된 Column을 GROUP BY 절로 묶음

  - 만약 SELECT 절에 사용되어진 Column이 GROUP BY 절에 묶이지 않거나, 그 자체로 Aggregate function이 아니라면 오라클은 에러(ORA-00937)를 출력

Aggregate Function

  - 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도 알파벳 순으로 최저 값과 최고 값을 나타내고 있다.

MIN(), MAX() 함수예제

 

3. AVG, SUM 함수

  1) AVG/SUM ( [DISTINCT|ALL] expr )

  2) 오직 number Datatype 만 사용할 수 있다.

    아래 예제는 CLERK 들의 sal에 대한 최소, 최고, 평균, 합계에 대한 정보를 보여주고 있다.

AVG(), SUM() 함수 예제

 

4. COUNT 함수

  1) COUNT( { * | [DISTINCT|ALL] expr } )

  2) COUNT(*)는 테이블의 null을 포함한 모든 row 수를 출력

  3) COUNT(expr)는 not null인 row 수를 출력

  ※ COUNT(*) 함수를 제외한 모든 그룹 함수는 null을 무시

  ※ NVL 함수를 사용해서 null 값을 연산할 수 있도록 지정할 수 있음

COUNT() 함수 예제


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 절보다 우선

GROUP BY 예제
GROUP BY 예제 결과

 

6. HAVING 절(1)

  1) Grouping 한 결과에 조건을 부여하고자 할 때 사용

    - WHERE 절에서 그룹 함수는 사용되어질 수 없고, HAVING 절을 이용해 조건을 부여

  2) SQL문에서 조건을 기술하는 두 개의 절은 WHERE과 HAVING임

  3) HAVING 절에 반드시 그룹 함수를 써야 한다거나 GROUP BY 절이 있어야 되는 것만은 아니나, 일반적으로 그룹함수를 사용하기 위한 조건 절로 사용되며 grouping 이후 filtering이 적용

HAVING 절 사용예제

 

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

반응형

'IT 이야기 > SQL' 카테고리의 다른 글

[SQL] 6. SubQuery  (0) 2021.02.22
[SQL] 4. Joins  (0) 2021.02.22
[SQL] 3. Function  (0) 2021.02.19
[SQL] 2. 기본 문법(2)  (0) 2021.02.17
[SQL] 1. 기본 문법(1)  (0) 2021.02.17

댓글