티스토리 뷰

자격증/SQLD

SQLD - SQL 기본 [GROUP BY, HAVING 절]

나는연어다 2017. 8. 7. 14:59

1.   집계함수(Aggregate Function)

-       특성

n  여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 반환하는 함수

n  GROUP BY 절은 행들을 소그룹화

n  SELECT , HAVING , ORDER BY 절에 사용

-       집계함수 명 ( ALL칼럼이나 표현식)

n  ALL : Default 옵션이므로 생략 가능

n  DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션

집계 함수

사용 목적

COUNT(*)

NULL 값을 포함한 행의 수를 출력한다.

COUNT(표현식)

표현식의 값이 NULL 값인 것을 제외한 행의 수를 출력한다.

SUM([DISTINCT | ALL] 표현식)

표현식의 NULL 값을 제외한 합계를 출력한다.

AVG([DISTINCT | ALL] 표현식)

표현식의 NULL 값을 제외한 평균을 출력한다.

MAX([DISTINCT | ALL] 표현식)

표현식의 최대값을 출력한다.

(문자, 날짜 데이터 타입도 사용가능)

MIN([DISTINCT | ALL] 표현식)

표현식의 최소값을 출력한다.

(문자, 날짜 데이터 타입도 사용가능)

STDDEV([DISTINCT | ALL] 표현식)

표현식의 표준 편차를 출력한다.

VARIAN([DISTINCT | ALL] 표현식)

표현식의 분산을 출력한다.

기타 통계 함수

벤더별로 다양한 통계식을 제공한다.

 

2.   GROUP BY

-       FROM 절과 WHERE절 뒤에 오며, 데이터들을 작은 그룹으로 분류하여 소그룹에 대한 항목별로 통계정보를 얻을 때 추가로 사용

-       GROUP BY 절과 HAVING절의 특성

n  GROUP BY 절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수 사용한다.

n  집계 함수의 통계정보는 NULL 값을 가진 행을 제외하고 수행한다.

n  GROUP BY 절에서는 SELECT 절과 달리 ALIAS 명을 사용할 수 없다.

n  집계 함수는 WHERE 절에는 올 수 없다. (GROUP BY 절보다 WHERE 절이 먼저 수행된다.)

n  WHERE 절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거한다.

n  HAVING절은 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다.

n  GROUP BY 절에 의한 소그룹별로 만들어진 집계 데이터 중, HAVING절에서 제한 조건을 두어 조건을 만족하는 내용만 출력한다.

n  HAVING절은 일반적으로 GROUP BY절 뒤에 위치한다.

 

3.   HAVING

-       HAVING절은 SELECT 절에 사용되지 않은 칼럼이나 집계 함수가 아니더라도 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다.

-       주의] WHERE 절의 조건 변경은 대상 데이터의 개수가 변경되므로 결과 데이터 값이 변경될 수 있지만, HAVING절의 조건 변경은 결과 데이터 변경은 없고 출력되는 레코드의 개수만 변경될 수 있다.

 

4.   CASE 표현을 활용한 월별 데이터 집계

-       모델링의 제1정규화로 인해 반복되는 칼럼의 경우 구분 칼럼을 두고 여러 개의 레코드로 만들어진 집합을, 정해진 칼럼 수 만큼 확장해서 집계보고서를 만드는 기법

 

5.   집계 함수와 NULL 처리

-       다중행 함수에 NVL함수(NULL 처리)를 사용하면 부하가 발생한다.

반응형
LIST

'자격증 > SQLD' 카테고리의 다른 글

SQLD - SQL 기본 [조인(JOIN)]  (0) 2017.08.11
SQLD - SQL 기본 [ORDER BY 절]  (0) 2017.08.07
SQLD - SQL 기본 [함수]  (0) 2017.08.07
SQLD - SQL 기본 [WHERE]  (0) 2017.08.05
SQLD - SQL 기본 [TCL]  (0) 2017.08.04
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함