A. 집계 함수(Aggregate Function)
1. 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수
2. GROUP BY 절은 행들을 소그룹화
3. SELECT 절, HAVING 절, ORDER BY 절에 사용할 수 있음
4. 그룹에 대한 정보를 제공하므로 주로 숫자 유형에 사용
5. MAX, MIN, COUNT 함수는 문자, 날짜 유형에도 적용이 가능
6. 집계 함수는 GROUP BY 절과 같이 사용
7. 테이블 전체가 하나의 그룹이 되는 경우에는 GROUP BY 절 없이 단독으로도 사용 가능
8. SELECT절, HAVING, ORDER BY 절에 사용할 수 있음
B. 집계 함수(Aggregate Function) 종류
집계 함수 | 사용 목적 |
COUNT(*) | NULL 값을 포함한 행의 수를 출력한다 |
COUNT(표현식) | 표현식의 값이 NULL 값인 것을 제외한 행의 수를 출력한다. |
SUM(표현식) | 표현식의 NULL 값을 제외한 합계를 출력한다 |
AVG(표현식) | 표현식의 NULL 값을 제외한 평균을 출력한다. |
MAX(표현식) | 표현식의 최대값을 출력한다 |
MIN(표현식) | 표현식의 최소값을 출력한다 |
STDDEV(표현식) | 표현식의 표준 편차를 출력한다. |
VARLAN(표현식) | 표현식의 분산을 출력한다. |
기타 통계 함수 | 벤더별로 다양한 통계식을 제공한다. |
C. GROUP BY 절
1. WHERE 절을 통해 조건에 맞는 데이터를 조회, 데이터 2차 가공 정보
D. GROUP BY & HAVING 절의 특성
1. GROUP BY 절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수를 사용
2. 집계 함수는 NULL 값을 가진 행을 제외하고 수행
3. GROUP BY 절에서는 ALIAS 명을 사용할 수 없음
4. WHERE 절에 사용불가
5. WHERE 절 실행 후 GROUP BY 절 실행
6. HAVING 절은 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용하여 조회 조건을 제한함
7. GORUP BY 절에 의한 집계 데이터는 HAVING 절에서 제외할 수 있음
8. HAVING 절은 GROUP BY 절 뒤에 위치
E. CASE 표현을 활용한 별 데이터 집계
- 집계 함수(CASE( ))-GROUP BY” 기능은 모델링의 제1정규화로 인해 구분 칼럼을 두고 여러 개의 레코드로 만들어진
집합을 정해진 칼럼 수만큼 확장해서 집계 보고서를 만드는 기법
F. 집계 함수와 NULL 처리
1. 다중 행 함수를 사용하는 경우 NVL(Oracle)/ISNULL(SQL Server) 함수는 불필요한 부하가 발생
2. NULL인 경우는 NULL의 특성으로 자동적으로 SUM 연산에서 제외
3. NVL/ISNULL 함수를 사용해 0(Zero)으로 변환시켜 연산이 일어나게 하는 것은 시스템의 자원을 낭비
4. 다만 0을 표시할 때는 전체 SUM 결과에 대해서만 함수를 사용
[SQLD] 3-6. SQL 기본 - SQL함수, 단일행함수, 문자형함수, 숫자형함수, 날짜형함수, 데이터유형변환, CASE표현, NULL 특성 및 연산, NULL 함수
[용어/개념] 프로세스(Process) vs 쓰레드(Thread) 비교 정리
[용어/개념] XSS (Cross-Site Scripting) - 악성 스크립트을 이용한 공격 기법