GROUP BY, HAVING절

2023. 10. 7. 16:33BOOKS/SQL 전문가 가이드

 
SQL 전문가 가이드
SQL 전문가 가이드는 SQL 자격검정 대비 수험서로 데이터베이스와 데이터 모델링에 대한 지식을 바탕으로 최적의 성능을 발휘할 수 있도록 SQL을 작성하고 데이터베이스 프로그램이나 응용 소프트웨어의 성능을 최적화하고 데이터베이스 개체의 설계와 구현을 위해 데이터 모델링의 이해, SQL기본 및 활용, SQL 고급 활용 및 튜닝 등의 실무가이드로 구성되어 있다.
저자
한국데이터산업진흥원
출판
한국데이터산업진흥원
출판일
2021.03.15

1. 집계함수

  • 여러 행들의 그룹이 모여 그룹당 단 하나의 결과를 돌려주는 함수
  • GROUP BY절은 행들을 소그룹화한다.
  • SELECT절, HAVING절, ORDER BY절에 사용가능

집계함수 종류

2. GROUP BY절

SELECT [DISTINCT] 칼럼명 [ALIAS명]
FROM 테이블명
[WHERE 조건식]
[GROUP BY 칼럼이나 표현식]
[HAVING 그룹조건식];
  • GROUP BY절을 통해 소그룹별 기준을 정한 후 SELECT절에 집계함수 사용
  • 집계함수이 통계정보는 NULL값을 가진 행을 제외하고 수행
  • GROUP BY절에는 ALIAS명 사용 불가능
  • 집계함수는 WHERE절에 올 수 없다.
  • WHERE절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거
  • HAVING절은 GROUP BY절의 기준 항목이나 소그룹의 집계함수를 이용한 조건을 표시가능
  • GROUP BY절에 의한 소그룹별로 만들어진 집계 데이터 중 HAVING절에서 제한 조건을 두어 조건을 만족하는 내용만 출력
  • HAVING절은 일반적으로 GROUP BY절 뒤에 위치

3. HAVING절

  • WHERE절은 GROUP BY절보다 먼저 적용되므로 집계함수를 사용할 수 없음 →HAVING절 사용
  • WHERE절 조건에 맞는 데이터들이 GROUP BY절에 의해 그룹화된 후 HAVING절 조건에 맞는 데이터만 출력
  • GROUP BY절과 HAVING절 위치 바꾸어도 오류X(ORACLE) But GROUP BY절 뒤에 HAVING절이 오는 것을 권고함
  • 가능하면 WHERE절에서 GROUP BY계산 대상을 줄이는 것이 효율적

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

5. 집계함수와 NULL 처리

  • 집계함수는 NULL을 제외하고 계산하므로 NULL을 0으로 표현하기 위해 NVL이나 ISNULL함수를 사용하는 것이 불필요

ex) SUM(NVL(SAL,0)) = SUM(SAL)

'BOOKS > SQL 전문가 가이드' 카테고리의 다른 글

조인  (0) 2023.10.07
ORDER BY절  (0) 2023.10.07
WHERE절  (0) 2023.10.07
함수  (0) 2023.10.07
SELECT문  (0) 2023.10.07