집계 함수란(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] 표현식) | 표현식의 분산 |
기타 통계 함수 | 벤더별로 다양한 통계식 제공 |
SELECT COUNT(COMM) AS 인센, MAX(SAL) AS 일등 FROM EMP;
1. GROUP BY 절
SELECT [DISTINCT] 칼럼명 [ALIAS명] FROM 테이블명 [WHERE 조건식] [GROUP BY 칼럼이나 표현식] [HAVING 그룹조건식];
- 통계정보는 NULL값을 제외하고 산출된다는 것을 명심하자
- GROUP BY절에서는 SELECT절과 달리 ALIAS명 사용할 수 없다.
- WHERE 절 이후에 수행된다.
- HAVING 절 : GROUP BY절에 의한 소그룹이 생성된 후, 그 소그룹에 제약조건을 거는 것
ex) K-리그 선수들의 포지션별 평균키는 어떻게 되는가?
(1) GROUP BY 절 사용 안했을 때
SELECT POSITION 포지션, AVG(HEIGHT)평균키 FROM PLAYER;
-> 에러 발생. 그룹 단위가 표시되어 있지 않다.
(2) 포지션별 최대키, 최소키, 평균키를 출력한다.
SELECT POSITION 포지션, COUNT(*) 인원수, COUNT(HEIGHT) 키대상, MAX(HEIGHT) 최대키, MIN(HEIGHT) 최소키, AVG(HEIGHT) 평균키 FROM PLAYER GROUP BY POSITION;
2. HAVING 절
SELECT POSITION 포지션, ROUND(AVG(HEIGHT) 평균키 FROM PLAYER GROUP BY POSITION HAVING AVG(HEIGHT) >=180;
'Backend > SQL' 카테고리의 다른 글
SQL 기본 및 활용 (4) - WHERE 절 (0) | 2022.11.05 |
---|---|
SQL 기본 및 활용 (3) - 트랜잭션 (0) | 2022.11.05 |
SQL 기본 및 활용 (2) - DML (0) | 2022.11.04 |
SQL 기본 및 활용 (1) - DDL (0) | 2022.11.04 |