[Database] Oracle 다중 행 함수

 다중 행 함수 



그룹 함수 또는 복수 행 함수로도 불리는 다중 행 함수는 여러행을 바탕으로 하나의 결과 값을 도출해 내기 위한 함수 입니다 . 



SUM 함수

  • 급여 합계 출력 


SELECT SUM(SAL)
    FROM EMP ;












































SUM 함수를 이용하여 사원 이름과 급여 합계 출력 











SELECT 절에서 다중 행 함수를 이용하여 결과 값이 한 행으로 나오는 데이터(SUM(SAL))과 여러 행이 나올 수 있는 데이터(ENAME)은 함께 사용 할 수 없습니다 . 

" 다중 행 함수는 다중 행 함수 끼리 사용할 수 있습니다"


SUM 함수와 간단하게 같이 사용할 수 있는 다중 행 함수를 살펴 보겠습니다  .

 

함수

기능 

SUM

지정한 데이터의 합 

COUNT

지정한 데이터의 개수

MAX

지정한 데이터 중 최댓값 반환

MIN

지정한 데이터 중 최솟값 반환

AVG

지정한 데이터의 평균 값 반환 




SUM 함수와 다양한 옵션 사용하기


  • SUM 함수와 DISTINCT, ALL 함께 사용  

SELECT SUM(DISTINCT SAL),
       SUM(ALL SAL),
       SUM(SAL) 
    FROM EMP;







ALLSALL 과 SAL은 똑같이 출력이 됩니다 . DISTINCT 절은 중복된 값은 제외된 나머지의 합계를 계산 하기 때문에 다른 두 개의 절보다 작은 값이 출력 됩니다 . 



COUNT 함수

COUNT 함수는 데이터의 개수를 출력하는데 사용됩니다 . 
































EMP 테이블에서 사원 번호가 30번인 직원 수 구하기 


SELECT COUNT(*)
    FROM EMP
    WHERE DEPTNO = 30 ;








SUM 함수와 마찬가지로 DISTINCT나 ALL과 함께 사용할 수 있습니다 .

  • COUNT 함수로 급여 개수 구하기 
SELECT COUNT(DISTINCT SAL),
       COUNT(ALL SAL) ,
       COUNT(SAL)
    FROM EMP;  






세 번째 열처럼 옵션 지정을 하지 않으면 ALL 이 기본 입니다 . 


COUNT 함수를 이용하면 추가 수당 열처럼 NULL이 데이터로 포함되어 있을 경우, NULL데이터는 제외됩니다 . 















IS NOT NULL 활용하기 (결과 같음) 
















MAX, MIN 함수 


MAX 함수와 MIN 함수는 최댓값과 최솟값을 반환합니다 . 


SELECT MAX(SAL),
        MIN(SAL)
    FROM EMP;













MAX와 MIN은 데이터 중복 제거와 무관하게 같은 결과 값을 반환하기 때문에 DISTINCT, ALL을 지정할 필요가 없습니다 . 




날짜 데이터에 MAX, MIN 사용하기 

날짜 및 문자 데이터 역시 크기 비교가 가능합니다 . 



SELECT MAX(HIREDATE)
       MIN(HIREDATE)
    FROM EMP
 WHERE DEPTNO = 20 ;


 







입사 연도가 가장 큰 사원이 최근입니다 . 

AVG 함수 

부서 번호가 30인 사원들의 평균 급여 출력 


SELECT AVG(SAL)
    FROM EMP
 WHERE Deptno = 30 ;











중복 값을 제외하고 구하기 




SELECT AVG(DISTINCT SAL)
    FROM EMP
 WHERE Deptno = 30 ;

댓글