728x90
집계함수
1. COUNT
COUNT함수는 몇 개의 값인지를 카운트하는 함수입니다.
SELECT COUNT(COMM) FROM EMP;
COUNT는 NULL 값을 제외한 모든 값을 카운트해줍니다.
NULL은 모든 연산에서 제외가 됩니다.
EMP 테이블의 모든 ROW의 갯수는 현재 13입니다.(ENAME이 hong인 값을 기존에 추가했음)
하지만 COMM을 가진 것을 카운트해보니 5가 나옵니다.
NULL 값만 제외할 뿐 0은 포함하여 카운트합니다.
NULL 값도 포함해서 카운트하고 싶다면 NVL 함수를 사용하는 방법이 있습니다.
SELECT COUNT(COMM), COUNT(NVL(COMM,-1)) FROM EMP;
2. MAX
MAX는 해당 컬럼의 최대값을 구하는 함수입니다.
SELECT MAX(SAL) FROM EMP;
3. MIN
MIN은 해당 컬럼의 최소값을 구하는 함수입니다.
SELECT MIN(SAL) FROM EMP;
4. SUM
SUM은 해당 컬럼의 모든 값을 더하는 함수입니다.
SELECT SUM(SAL) FROM EMP;
5. AVG
AVG는 해당 컬럼의 평균을 구하는 함수입니다.
SELECT AVG(SAL) FROM EMP;
*주의할 점!
SELECT SAL, COUNT(SAL), MAX(SAL), MIN(SAL), SUM(SAL), AVG(SAL) FROM EMP;
해당 코드는 noy a single-group group function 에러가 발생합니다
SAL컬럼의 경우 13개가 출력이 되어야 합니다.
하지만 집계함수는 1개의 출력값만 출력시키고자 합니다.
그래서 출력을 시킬 수 없는 것입니다.
이럴 경우 SAL을 그룹화 시켜주면 출력이 가능합니다
GROUP BY 컬럼
SELECT SAL, COUNT(SAL), MAX(SAL), MIN(SAL), SUM(SAL), AVG(SAL) FROM EMP
GROUP BY SAL;
SAL컬럼을 그룹화하여 SAL이 같은 것끼리 묶어주었습니다.
집계함수도 묶인 것들의 값을 계산합니다.
728x90
'RDB > Oracle' 카테고리의 다른 글
[ORACLE] 그룹함수 - ROLLUP, CUBE, GROUPING SET (0) | 2022.01.01 |
---|---|
[ORACLE] UNION, UNION ALL, INTERSECT, MINUS (0) | 2021.12.31 |
[ORACLE] 기타 함수 - NVL, DECODE, CASE [WHEN ... THEN ...] END (0) | 2021.12.29 |
[ORACLE] 타입 변환 함수(TO_CHAR, TO_DATE, TO_NUMBER) (0) | 2021.12.28 |
[ORACLE] 날짜함수(ADD_MONTHS, MONTHS_BETWEEN, SYSDATE) (0) | 2021.12.27 |