Oracle에서 사용할 수 있는 내장함수 가운데서 GROUP BY절과 함께 사용하기도 해서 그룹함수라고도 불리는 집계함수들이 있습니다. 이 함수는 여러 행의 그룹을 묶어서 단일 행을 반환합니다. 이 집계 함수들은 다음과 같습니다.
1. 집계함수 (그룹함수)
함수명 | 양식 | 기능 설명 |
COUNT | COUNT(expr) | - 쿼리에서 반환한 행 수를 반환 - 컬럼명을 지정하면 null이 아닌 행 수를 반환 - 컬럼명에 DISTICT를 지정하면 중복을 제외한 행 수를 반환 - 별표(*)를 지정하면 중복 및 null을 포함한 모든 행을 반환 |
SUM | SUM(expr) | - 쿼리에서 반환한 행들의 합계 값을 반환 - 숫자형 컬럼에 사용 |
AVG | AVG(expr) | - 쿼리에서 반환한 행들의 평균 값을 반환 - 숫자형 컬럼에 사용 - null인 레코드는 제외하고 계산 |
MAX MIN |
MAX(expr) MIN(expr) |
- 쿼리에서 반환한 행들 가운데서 최대값을 반환 - 쿼리에서 반환한 행들 가운데서 최소값을 반환 - 숫자형, 문자형, 날짜형 모두 가능 |
VARIANCE | VARIANCE(expr) | - 쿼리에서 반환한 행들 값의 분산을 반환 |
STDDEV | STDDEV(expr) | - 쿼리에서 반환한 행들 값의 표준편차를 반환 |
1.1 COUNT(expr)
COUNT(expr)
- 쿼리에서 반환한 행 수를 반환
- 컬럼명을 지정하면 null이 아닌 행 수를 반환
- 컬럼명에 DISTICT를 지정하면 중복을 제외한 행 수를 반환
- 별표(*)를 지정하면 중복 및 null을 포함한 모든 행을 반환
SELECT COUNT(*), COUNT(employee_id) FROM employees;
-------- ------------------
107 107
SELECT DISTINCT department_id FROM employees;
SELECT COUNT(DISTINCT department_id) FROM employees;
-----------------------------
11
보다 상세한 설명은 아래 링크를 참고해 주세요.
Select count(*), count(1), count(column_name), count(DISTINCT column_name) 차이점
1.2 SUM(expr)
SUM(expr)
- 쿼리에서 반환한 행들의 합계 값을 반환
- 숫자형 컬럼에 사용
- null인 레코드는 제외하고 계산
SELECT SUM(salary) FROM employees;
-----------
691416
1.3 AVG(expr)
AVG(expr)
- 쿼리에서 반환한 행들의 평균값을 반환
- 숫자형 컬럼에 사용
- null인 레코드는 제외하고 계산
SELECT AVG(salary) FROM employees;
-----------
6461.831775700934579439252336448598130841
1.4 MAX(expr), MIN(expr)
MAX(expr)
- 쿼리에서 반환한 행들 가운데서 최댓값을 반환
- 숫자형, 문자형, 날짜형 모두 가능
MIN(expr)
- 쿼리에서 반환한 행들 가운데서 최솟값을 반환
- 숫자형, 문자형, 날짜형 모두 가능
SELECT MIN(salary), MAX(salary) FROM employees;
----------- -----------
2100 24000
SELECT MIN(department_id), MAX(department_id) FROM employees;
------------------ ------------------
[10] [110]
1.5 VARIANCE(expr)
VARIANCE(expr) : 쿼리에서 반환한 행들 값의 분산을 반환
SELECT VARIANCE(salary) FROM employees;
----------------
15284813.66954681713983424440134015164874
1.6 STDDEV(expr)
STDDEV(expr) : 쿼리에서 반환한 행들 값의 표준편차를 반환
SELECT STDDEV(salary) FROM employees;
--------------
3909.579730552481921059198878167256201202
1.7 평균, 분산, 표준편차
두 반의 평균, 분산, 표준편차
---------------------------------------------------------------------
분산 (400+100+0+100+400)/5 = 200 평균에 대한 편차 제곱의 평균
표춘편차 root 200 = 14.14 분산의 양의 제곱근
---------------------------------------------------------------------
-20, -10, 0, 10, 20 - 평균과의 차이
A반 50, 60, 70, 80, 90 = 평균 : 70, 분산 : 200, 표준편차 : 14.14
B반 70, 70, 70, 70, 70 = 평균 : 70, 분산 : 0, 표준편차 : 0
참고
https://docs.oracle.com/database/121/SQLRF/functions003.htm#SQLRF20035
'Dev. Handbook > SQL, Oracle, MariaDB' 카테고리의 다른 글
[MariaDB] Data Type, 데이터 타입, 데이터형, 자료형 10.3, 10.4 (0) | 2022.11.09 |
---|---|
[MySQL, MariaDB] MySQL, MariaDB 버전별 호환성 (0) | 2022.11.05 |
[Oracle] 내장함수 : 비교함수, 디코딩 함수 (0) | 2022.05.22 |
[Oracle] 내장 함수 : NULL 관련 함수 (1) | 2022.05.14 |
[Oracle] 내장 함수 : 형 변환 함수 (0) | 2022.05.13 |
댓글