SQL 문제 2

COL1 COL2
A 10
C 20
D 10
B 30
테이블에서 다음의 결과값을 출력하시오.
COL1 COL2 누적값
A 10 10
C 20 30
D 10 40
B 30 70
결과값이 위와 동일해야함. (원래 테이블 순서와 동일, A-C-D-B)

문제를 풀어보면..

1. 오라클

select col1, col2,       
    (select sum(col2) from sampletable where rownum <= rn) colsum 
from        
(       
     select col1, col2, rownum as rn    
     from sampletable      
)a


2. MS-SQL

여기서는 오라클처럼 rownum 을 구할 수가 없어서 테이블을 만들었다.
sql2000 버전임. 2005에는 비슷한 것이 있다고 들었음. ㅡ,.ㅡ;

SELECT * ,  IDENTITY(int, 1,1) as idx     
INTO spltemp       
FROM        
(        
     select * from sampletable     
)x        
        
select * from spltemp      
        
select a.col1, a.col2, (select sum(col2)  from spltemp where a.idx >= idx) ssum
from spltemp a 

뭐.. 이리저리 비슷한것 같기도 함. --;

'SQL > 문제' 카테고리의 다른 글

SQL 문제 3  (0) 2007.11.21
SQL 문제 1  (0) 2007.11.20