[ Oracle - OVER 예제1 ]

 

 SUM() 집계함수를 사용하게 되면 GROUP BY를 반드시 사용해야 된다.

 


WITH T AS
(             
SELECT 'GS몰'   AS SHOP, '201405' AS YM, 22000 AS AMT FROM DUAL
    
UNION ALL SELECT 'GS몰'          , '201409'      , 55000        FROM DUAL
    
UNION ALL SELECT 'GS몰'          , '201412'      , 55000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201401'      , 10000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201401'      , 20000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201401'      , 11000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201403'      , 22000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201405'      , 33000        FROM DUAL
)
SELECT SHOP, YM
     , 
SUM(AMT) AS SUM_AMT
  
FROM T
 
GROUP BY SHOP, YM
 
ORDER BY SHOP, YM ;



 

 OVER() 분석 함수를 사용하게 되면 GROUP BY절을 사용해도 되고, 안해도 동일함
   OVER() 함수 괄호한에 아무 절도 없으면 모든 결과 레코드를 대상으로 SUM()이 수행 됨

 

 

WITH T AS
(             
SELECT 'GS몰'   AS SHOP, '201405' AS YM, 22000 AS AMT FROM DUAL
    
UNION ALL SELECT 'GS몰'          , '201409'      , 55000        FROM DUAL
    
UNION ALL SELECT 'GS몰'          , '201412'      , 55000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201401'      , 10000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201401'      , 20000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201401'      , 11000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201403'      , 22000        FROM DUAL
    
UNION ALL SELECT '양동점'        , '201405'      , 33000        FROM DUAL
)
SELECT SHOP, YM
     , 
SUM(AMT) OVER()                AS SUM_AMT
  
FROM T
 --GROUP BY SHOP, YM, AMT
 
ORDER BY SHOP, YM ;


 

 

'(DB) Oracle > SQL.통계-Over함수' 카테고리의 다른 글

Oracle - OVER 예제3  (0) 2017.01.21
Oracle - OVER 예제2  (0) 2017.01.21
Oracle - OVER rows, range 예제1  (0) 2017.01.21
Oracle - Over LAST_VALUE  (0) 2017.01.21
Oracle - OVER 기본문법  (0) 2017.01.21
Posted by 농부지기
,

[ Oracle - OVER rows, range 예제1 ]

 

 

☞  ROWS 예문

 


1. 
ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING
   
- 자료 범위 : 현재 ROW + 1 ~ 마지막ROW

2. ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
   
- 자료 범위 : 맨 처음 ROW ~ 현재ROW - 1

'(DB) Oracle > SQL.통계-Over함수' 카테고리의 다른 글

Oracle - OVER 예제3  (0) 2017.01.21
Oracle - OVER 예제2  (0) 2017.01.21
Oracle - OVER 예제1  (0) 2017.01.21
Oracle - Over LAST_VALUE  (0) 2017.01.21
Oracle - OVER 기본문법  (0) 2017.01.21
Posted by 농부지기
,

[ Oracle - Over  LAST_VALUE ]

 

       

☞   LAST_VALUE  

 

1. last_value(c1 ignore nulls) over(order by  C1)

'(DB) Oracle > SQL.통계-Over함수' 카테고리의 다른 글

Oracle - OVER 예제3  (0) 2017.01.21
Oracle - OVER 예제2  (0) 2017.01.21
Oracle - OVER 예제1  (0) 2017.01.21
Oracle - OVER rows, range 예제1  (0) 2017.01.21
Oracle - OVER 기본문법  (0) 2017.01.21
Posted by 농부지기
,