[SQLD] 2-7. Group By / Having
2021. 10. 30. 19:58ㆍCertificate`/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 절 뒤에 온다