다중행 함수
다중행 함수는 여러 행을 바탕으로 하나의 결과 값을 도출해내는 함수다. 자주 사용하는 함수에는 아래와 같이 5가지의 함수가 있다.
함수 | 설명 |
SUM | 지정한 데이터의 합 반환 |
COUNT | 지정한 데이터의 개수 반환 |
MAX | 지정한 데이터 중 최댓값 반환 |
MIN | 지정한 데이터 중 최솟값 반환 |
AVG | 지정한 데이터의 평균값 반환 |
합계를 구하는 SUM 함수
SUM함수는 데이터의 합을 구하는 함수다.
SUM([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[합계를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
추가 수당 합계를 구하기 위한 쿼리문을 SUM 함수를 작성해보자.
SELECT SUM(COMM)
FROM EMP;
SUM 함수를 생략 가능한 옵션 DISTINCT와 ALL을 사용하여 쿼리문을 작성해보자.
SELECT SUM(DISTINCT SAL),
SUM(ALL SAL),
SUM(SAL)
FROM EMP;
데이터 개수를 구해주는 COUNT 함수
COUNT 함수는 데이터 개수를 출력하는 데 사용한다. COUNT 함수에 *을 사용하면 SELECT문의 결과 값으로 나온 행 데이터의 개수를 반환한다.
COUNT([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[개수를 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)
COUNT 함수를 통해 부서 번호가 30번인 직원 수를 구해보자.
SELECT COUNT(*)
FROM EMP
WHERE DEPTNO = 30;
COUNT 함수를 DISTINCT와 ALL을 함께 사용해보자.
SELECT COUNT(DISTINCT SAL),
COUNT(ALL SAL),
COUNT(SAL)
FROM EMP;
최댓값과 최솟값을 구하는 MAX, MIN 함수
MAX 함수와 MIN 함수는 입력 데이터 중 최댓값과 최솟값을 반환한다.
MAX([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[최댓값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법 지정)(선택)
MIN([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[최솟값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법을 지정)(선택)
MAX 함수와 MIN함수를 사용하여 부서 번호가 10번인 사원들의 최대, 최소 급여 쿼리문을 작성해보자.
SELECT MAX(SAL)
FROM EMP
WHERE DEPTNO = 10;
SELECT MIN(SAL)
FROM EMP
WHERE DEPTNO = 10;
날짜 데이터도 MAX와 MIN 함수를 사용할 수 있다. 날짜 데이터에서 MAX함수는 현재 날짜에서 가장 가까운 날짜를 나타내는 함수이고 MIN함수는 현재 날짜에서 가장 멀리 떨어진 날짜를 나타내는 함수다. MAX,MIN 함수를 사용하여 부서 번호가 20인 사원중 입사년도(HIREDATE)가 가장 최근인 날짜와 가장 오래된 날짜를 구해보자.
SELECT MAX(HIREDATE)
FROM EMP
WHERE DEPTNO = 20;
SELECT MIN(HIREDATE)
FROM EMP
WHERE DEPTNO = 20;
평균 값을 구하는 AVG 함수
다중행 함수중에 평균을 구하는 함수가 있다. AVG 함수다.
AVG([DISTINCT, ALL 중 하나를 선택하거나 아무 값도 지정하지 않음(선택)]
[평균 값을 구할 열이나 연산자, 함수를 사용한 데이터(필수)])
OVER(분석을 위한 여러 문법을 지정)(선택)
AVG함수를 사용하여 부서 번호가 30인 사원들의 평균 급여(SAL)을 쿼리문으로 짜보자.
SELECT AVG(SAL)
FROM EMP
WHERE DEPTNO = 30;
마찬가지로 DISTINCT로 중복을 제거한 급여 열의 평균을 다음과 같이 구할 수 있다.
SELECT AVG(DISTINCT SAL)
FROM EMP
WHERE DEPTNO = 30;
출처:Do it! 오라클로 배우는 데이터베이스 입문(저자:이지훈 출판사:이지스퍼블리싱)
'DB > Oracle' 카테고리의 다른 글
[서브쿼리] 서브쿼리의 정의 (0) | 2022.02.14 |
---|---|
[다중행 함수] 결과 값을 원하는 열로 묶어 출력하는 GROUP BY절 (0) | 2022.02.11 |
[오라클 함수] 상황에 따라 다른 데이터를 반환하는 DECODE 함수와 CASE문 (0) | 2022.02.10 |
[오라클 함수] NULL 처리 함수 (0) | 2022.02.10 |
[오라클 함수] 형 변환 함수 (0) | 2022.02.09 |