SUM() 합, AVG() 평균, COUNT() 카운트, MAX() 최댓값, MIN() 최솟값, VERIENCE() 분산, STDDEV() 표준편차
※ 그룹 함수의 가장 큰 특징
처리해야 할 데이터들 중 null이 존재한다면(포함되어 있다면) null은 제외한 상태로 연산을 수행 즉, 그룹 함수가 작동하는 과정에서 null은 연산의 대상에서 제외된다.
SUM() 합
총합을 조회
SELECT SUM(SAL)
FROM EMP
--==>> 29025
COUNT()
행(레코드)의 갯수 조회 → 데이터가 몇 건인지 확인
SELECT COUNT(ENAME)
FROM EMP;
--==>> 14
SELECT COUNT(COMM) -- COMM 컬럼 행의 갯수 조회 → NULL은 제외!!
FROM EMP;
--==>> 4
SELECT COUNT(*)
FROM EMP;
--==>> 14 -- NULL을 포함해서 샐 경우 이렇게 한다.
AVG()
평균 반환
SELECT SUM(SAL) / COUNT(SAL) "RESULT1" -- 2073.214285714285714285714285714285714286
, AVG(SAL) "RESULT2" -- 2073.214285714285714285714285714285714286
FROM EMP;
SELECT SUM(COMM) / COUNT(COMM) "RESULT3" -- 550
, AVG(COMM) "RESULT4" -- 550
, SUM(COMM) / COUNT(*) "RESULT5" -- 157.142857142857142857142857142857142857
FROM EMP;
※ 데이터가 NULL 인 컬럼의 레코드는 연산 대상에서 제외되기 때문에 주의하여 연산 처리해야 한다.
(RESULT3와 RESULT4는 잘못된 연산 RESULT5처럼 해야 한다)
VARIANCE(), STDDEV(), POWER(), SQRT()
분산, 표준편차, 제곱, 제곱근
※ 표준편차의 제곱이 분산, 분산의 제곱근이 표준편차
SELECT VARIANCE(SAL), STDDEV(SAL)
FROM EMP;
--==>>
/*
1398313.87362637362637362637362637362637
1182.503223516271699458653359613061928508
*/
SELECT POWER(STDDEV(SAL), 2) "RESULT1" -- POWER(A, B) : A의 B제곱
, VARIANCE(SAL) "RESULT2"
FROM EMP;
--==>>
/*
1398313.87362637362637362637362637362637
1398313.87362637362637362637362637362637
*/
SELECT SQRT(VARIANCE(SAL)) "RESULT1"
, STDDEV(SAL) "RESULT2"
FROM EMP;
--==>>
/*
1182.503223516271699458653359613061928508
1182.503223516271699458653359613061928508
*/
MAX() / MIN()
최대값 최솟값
SELECT MAX(SAL) "RESULT1"
, MIN(SAL) "RESULT2"
FROM EMP;
--==>> 5000 800
※ 주의
SELECT ENAME, SUM(SAL)
FROM EMP;
--==>>에러 발생
-- (ORA-00937: not a single-group group function)
이럴 때 사용하는 게 GROUP BY
SELECT DEPTNO, SUM(SAL)
FROM EMP
GROUP BY DEPTNO;
--==>>
/*
30 9400
20 10875
10 8750
*/
※ 파싱순서에서 GROUP BY가 SELECT 보다 먼저이기에 이렇게 가능한 것이다.
부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.
이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.
'SQL > Oracle' 카테고리의 다른 글
27. CUBE (0) | 2022.03.12 |
---|---|
26. ROLLUP, GROUPING (0) | 2022.03.12 |
24. RANK() (0) | 2022.03.12 |
23. VIEW (0) | 2022.03.12 |
22. CASE 구문(조건문, 분기문) (0) | 2022.03.12 |