[ 분석용 함수 ]    

 

☞ Analytic 함수 List  

         

 1) AVG* 함수
 2) CORR* CORR* 함수
 3) COUNT* 함수
 4) COVAR_SAMP 함수
 5) CUME_DIST 함수
 6) DENSE_RANK 함수
 7) FIRST 함수
 8) FIRST_VALUE 함수
 9) LAG 함수
 10) LAST_VALUE 함수
 11) LEAD 함수
 12) NTILE 함수
 13) RATIO_TO_REPORT 함수
 14) ROW_NUMBER 함수

 

 
 

☞ LAG 함수

 

♧ 정의 : self join하지 않고 하나의 테이블에서 동시에 한 행(row)이상을 접근하여 자료를 가져
          올 수 있다. 즉, n개의 Record를 조회할 때 현재 Record와 이전Record의 값을 한Record로
          보여줄 수 있다.
          - 반대로 하위 행을 찾는 함수는 LEAD 함수 이다.

【Version】 ORACLE 8.1.6


【형식】
LAG(value_expr [,offset] [,default] ) OVER
           (
PARTITION BY [partition_clause] ORDER BY [order_by_clause] )

        . value_expr       : 이전,이후 레코드의 찾고자하는 컬럼. 반드시 컬럼 한 개만 필요
        . order_by_clause  : 이전,이후레코드를 알기 위한 정렬
        . offset           : 1 - 이전 첫 번째 레코드를 찾아옴
                             2 - 이전 두 번째 레코드를 찾아옴
                             즉, 해당 offset 숫자만큼 이전 레코드를 찾는다. 반드시 양수임
        . default          : ??
        . partition_clause : Group by 와 같은 의미 

【예제】SQL>
SELECT name,salary,LAG(salary,1,0)  OVER (ORDER BY salary)
             FROM
employees;

【결과】 NAME           SALARY    LAG(SALARY,1,0)OVER(ORDERBYSALARY)
         ---------- ----------    ----------------------------------
         jijoe             220                                  0
         Joe               240                                220
         Cho               250                                240
         kim               250                                250  

 

 

'(DB) Oracle > 함수' 카테고리의 다른 글

Oracle - Datetime 함수 목록  (0) 2017.01.18
Oracle - 날짜형 실전예제  (0) 2017.01.18
Oracle - 기타 함수  (0) 2017.01.18
Oracle - 그룹 함수  (0) 2017.01.18
Oracle - 변환함수  (0) 2017.01.18
Posted by 농부지기
,

                               [ 기타 함수 ]

 

☞ NVL

 

1. NULL값을 특정한 값으로 전환
2. 사용예) SELECT  NVL('', 'NULL') FROM DUAL;
     결과) NULL  
  

☞ NVL2

 

1. 정의 : 기준값이 NULL일 경우, NULL이 아닐 경우 특정하게 치환
2. 사용예)
SELECT  NVL2('KIM YONG HAK', '널아님', '널임') FROM DUAL;
     결과) 널아님

☞ NULLIF

 

1. 정의 : 두값을 비교하여 같으면 NULL을 돌려주고, 다르면 첫 번째 인자값을 돌려주는 함수
2. 사용예) 
SELECT  NULLIF('kim', 'YONG') FROM DUAL;
     결과)  kim
   사용예) 
SELECT  NULLIF('kim', 'kim') FROM DUAL;
     결과)  

☞ COALESCE  

 

1. 정의 : NVL함수를 일반화한 것이다.
          여러 행중에서 첫 번째인자가 NULL이 아니면 첫 번째값을
                        첫 번째인자가 NULL이면      두 번째값을
                        첫 번째, 두 번째인자 모두 NULL이면 세 번째 값을 돌려주는 함수
2. 형식 :
COALESCE(첫번째값, 두번째값, 세번째값)  
3.   문제) 사원급여가 존재시 사원급여를,  사원급여가 null이면 기본급을, 둘다 null이면 100만원을
           RETURN시켜라  
   사용예)
SELECT  COALESCE(PAY_MON, BASE_MON, 1000000) FROM 급여_TABLE ;
     결과)  
4. 참고)
COALESCE(expr1,expr2,expr3,…)
       =
CASE WHEN expr1 IS NOT NULL
              
THEN expr1
              
ELSE COALESCE(expr2,expr3,…)
         
END;


☞ DECODE

 

1. 정의 : 값을 =(equal)로 비교하여 해당값하고 같을 경우 해당값을 RETURN
2. 사용예)
SELECT  DECODE('KIM', 'KIM', '성씨', '이름') FROM DUAL;
     결과) 성씨    

☞ CASE

 

1. 정의 : 값을 =(equal), LIKE, <> 등 비교 연산을 하여 치환값을 RETURN
2. 사용예)
SELECT  CASE WHEN  직위  like '%부장%' THEN 기본급 * 1.5%
                        
WHEN  직위  like '%차장%' THEN 기본급 * 1.3%
                        
WHEN  직위  like '%과장%' THEN 기본급 * 1.2%
                        
ELSE  기본급
           
FROM 급여_TABLE ;
     결과) 

☞ RANK() OVER

 

1. 정의 : 순위를 구하는 함수
2. 형식1: 
RANK() OVER  (ORDER BY 컬럼1 ) 
          - 컬럼1을 기준으로 ORDER BY 후 순위가 부여된다.
   형식2:
RANK() OVER  ([PARTITION BY 컬럼1] ORDER BY 컬럼2) 
          - 컬럼1을 기준으로 GROUP 하고 컬럼2로 ORDER BY 후 순위가 부여 된다.
            그래서 컬럼1별로 순위가 부여 된다.
            즉, 만약, 부서별로 급여 순위를 부여하고 싶을 경우 아래와 같다.

3. 사용예)
SELECT  RANK() OVER (PARTITION BY 부서 ORDER BY 급여액 DESC)
           
FROM    급여_TABLE ;
     결과)  

☞ 

 

1.


☞ 전각을 반각으로 변환

 

1. 정의 : HOST에서 사용하는 전각문자를 WIN에서 사용하는 반각문자로 변환
2. 형식 :
TO_SINGLE_BYTE()

☞ 반각을 전각으로 변환

 

1. 정의 : HOST에서 사용하는 전각문자를 WIN에서 사용하는 반각문자로 변환
2. 형식 :
TO_MULTI_BYTE()

   


☞ 시한편
 

내용 입력








 

 

'(DB) Oracle > 함수' 카테고리의 다른 글

Oracle - 날짜형 실전예제  (0) 2017.01.18
Oracle - 분석용 함수  (0) 2017.01.18
Oracle - 그룹 함수  (0) 2017.01.18
Oracle - 변환함수  (0) 2017.01.18
Oracle - 날짜형함수  (0) 2017.01.18
Posted by 농부지기
,

                               [그룹 함수]

참고) COUNT(*)를 제외한 모든 그룹함수는 NULL값을 고려않고(제외되고) 계산처리 된다.
      MAX, MIN, COUNT를 제외한 그룹함수는 숫자타입의 데이터에만 가능하다.

☞ COUNT

 

1. 정의 : 조건에 맞는 행의 개수를 구함
2. 사용예)
SELECT  COUNT(DUMMY) FROM DUAL;
     결과) 1   

☞ AVG

 

1. 정의 : 조건에 맞는 행값의 평균을 구함
2. 사용예)
SELECT  AVG(PAY_MON) FROM EMP_PAY;
     결과)   

☞ SUM

 

1. 정의 : 조건에 맞는 행값의 합계를 구함
2. 사용예)
SELECT  SUM(PAY_MON) FROM EMP_PAY;
     결과)  

☞ MIN

 

1. 정의 : 조건에 맞는 행값들 중 최소값을 구함
2. 사용예)
SELECT  MIN(PAY_MON) FROM EMP_PAY;
     결과)     


☞ MAX  

 

1. 정의 : 조건에 맞는 행값들 중 최대값을 구함
2. 사용예)
SELECT  MIN(PAY_MON) FROM EMP_PAY;
     결과)
     

☞ STDDEV  

 

1. 정의 : 표준편차를 구함
2. 사용예)

     결과)
 

☞ VARIANCE

 

1. 정의 : 분산을 구함
2. 사용예)

     결과)
 

☞ 
 

 


 

'(DB) Oracle > 함수' 카테고리의 다른 글

Oracle - 분석용 함수  (0) 2017.01.18
Oracle - 기타 함수  (0) 2017.01.18
Oracle - 변환함수  (0) 2017.01.18
Oracle - 날짜형함수  (0) 2017.01.18
Oracle - 숫자형 함수  (0) 2017.01.18
Posted by 농부지기
,