-> 블로그 이전

[SQLD] 2-7. Group By / Having

2021. 10. 30. 19:58Certificate`/SQLD

집계 함수(Aggregate Function)

- 다중행 함수

- 여러 행들의 그룹이 모여서 그룹당 하나의 결과만 리턴

- Group By 절은 행들을 소그룹화 

- SELECT, HAVING, ORDER BY 절에서 사용

 

집계 함수 종류

집계 함수 설명
COUNT(*) NULL값을 포함한 행의 수 출력
COUNT(표현식) NULL값을 제외한 행의 수 출력
SUM([DISTINCT | ALL] 표현식) NULL값을 제외한 합계 출력
AVG([DISTINCT | ALL] 표현식) NULL값을 제외한 평균 출력
MAX([DISTINCT | ALL] 표현식) 표현식의 최댓값 출력 (문자/날짜 데이터 타입도 가능)
MIN([DISTINCT | ALL] 표현식) 표현식의 최솟값 출력 (문자/날짜 데이터 타입도 가능)
STDDEV([DISTINCT | ALL] 표현식) 표현식의 표준 편차 출력
VARIAN([DISTINCT | ALL] 표현식) 표현식의 분산 출력
기타 통계 함수  

 

 

SQL 문장 실행 순서

1. FROM : 대상 테이블 참조

2. WHERE : 대상 데이터가 아닌 것 제거

3. GROUP BY : 행들을 그룹화

4. HAVING : 그룹핑된 값의 조건에 맞는 것 출력

5. SELECT : 데이터 값 출력 및 계산

6. ORDER BY : 데이터 정렬

 

 

GROUP BY 절 / HAVING 절

- 데이터들을 작은 그룹으로 분류하여 소그룹에 대한 항목별 통계 정보 얻을 때 사용

- SELECT 절에 집계 함수가 아닌 일반 속성들을 모두 작성

- ALIAS (별칭) 사용 X

- 집계 함수는 WHERE절에 올 수 없다

- 집계 함수의 통계정보는 NULL 값을 가진 행을 제외하고 수행

- HAVING 절은 GROUP BY 절 뒤에 온다

포지션 별 정보 / 소속팀 별 정보
포지션 별 정보 (인원수 > 30) / 소속팀 별 정보 (인원수 > 30)