상세 컨텐츠

본문 제목

[SQL 전문가 가이드] GROUP BY, HAVING절

공부/DB

by 비렴 2022. 9. 4. 09:00

본문

1. 집계 함수(Aggregate Function)
    여러 행들의 그룹이 모여 그룹당 단 하나의 결과를 돌려주는 다중행 함수
    집계함수명( [DISTINCT | ALL] 칼럼이나 표현식 )
        - ALL : Default 옵션이므로 생략 가능
        - 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절
    SELECT [DISTINCT] 칼럼명 [ALIAS명] 
    FROM 테이블명
    [WHERE 조건식]
    [GROUP BY 컬럼이나 표현식]
    [HAVING 그룹조건식]
    특성
        -  소그룹별 기준을 정한 후 SELECT절에 집계함수를 사용한다
        - 집계 함수의 통계정보는 NULL값을 가진 행을 제외하고 수행한다
        - GROUP BY절에서는 SELECT절과는 달리 ALIAS명을 사용할 수 없다
        - 집계함수는  WHERE절에는 올 수 없다(WHERE절이 먼저 수행되기 때문!)
        - WHERE절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거시킨다
        - HAVING절은 GROUP BY절의 기준항목이나 소그룹의 집계함수를 이용한 조건을 표시할 수 있다
        - GROUP BY절에 의한 소그룹별로 만들어진 집계 데이터 중 HAVING절에 제한조건을 두어 조건을 만족하는 내용만
          출력한다
        - HAVING절은 일반적으로 GROUP BY절 뒤에 위치한다

'공부 > DB' 카테고리의 다른 글

[SQL 전문가 가이드] 조인(JOIN)  (0) 2022.09.06
[SQL 전문가 가이드] TOP(N) 쿼리, ROWNUM 조건  (0) 2022.09.05
[SQL 전문가 가이드] 함수(Function)  (0) 2022.09.03
[PostgreSQL] 시작하기  (0) 2022.06.10
[SQL] SQL이란?  (0) 2022.06.10

관련글 더보기