제 7절 GROUP BY, HAVING 절

suyeon-jung·2021년 11월 12일
0

SQLD

목록 보기
7/19

1. 집계함수

  • 특성

    • 여러 행이 그룹이 되어 그룹당 단 하나의 결과를 돌려누는 함수
    • GROUP BY절은 행들을 소그룹화
    • SELECT, HAVING, ORDER BY 절에서 사용
  • 사용방법
    집계함수명(ALL 칼럼이나 표현식)

    • ALL : 디폴트 옵션이므로 생략 가능
    • DISTINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션

2. GROUP BY 절

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

SELECT DISTINCT 칼럼명 ALIAS명

FROM 테이블명

WHERE 조건식

GROUP BY 칼럼(Column)이나 표현식

HAVING 그룹조건식 ;
  • 특성
    • GROUP BY 절을 통해 소그룹별 기준을 정하고 SELECT 절에서 집계 함수 사용
    • 집계함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행(COUNT(*) 예외)
    • GROUP BY 절에서는 SELECT 절과 달리 ALIAS를 사용할 수 없음
    • 집계함수는 WHERE 절에는 올 수 없음(GROUP BY 절보다 WHERE 절이 먼저 수행됨)
    • WHERE 절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거하는 역할
    • HAVING 절은 GROUP BY 절의 기준 항모이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있음
    • GROUP BY 절에 의한 소그룹별로 만들어진 집계 데이터 중, HAVING 절에서 제한 조건을 두어 조건을 만족하는 내용만 출력
    • HAVING 절은 일반적으로 GROUP BY 절 뒤에 위치

3. HAVING 절

  • WHERE 절에는 집계함수를 사용할 수 없음
  • GROUP BY 절과 HAVING 절의 순서를 바꾸어서 수행해도 동일한 결과가 출력됨(But, 순서 지키는 것이 좋음)
  • SELECT 절에 사용되지 않은 칼럼이나 집계함수가 아니더라도 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있음

0개의 댓글