2012-01-29 2 views
0

내가 ROW1 - ROW2로 범위를 계산할 범위 열을 얻기 위해 DB2 쿼리에 도움이 필요의 차이를 계산하는 방법인접 행

name,age,range 
a,40,0  
b,20,20 
c,7,13 
d,5,2 
e,1,4 

범위 열 계산

first value is 0 
(40-20) 
(20-7) 
(7-5) 
(5-1) 
+0

같은 질문에 답변 : [SQL Server에서 ROW_NUMBER() 최적화] (http://stackoverflow.com/questions/2960104/optimizing-row-number-in-sql-server) 다양한 다른 방법으로 동일한 결과 달성 . –

+0

@ypercube : 나는 창 함수의 값을 사용하여 결과 집합을 결합하는 것을 다루기 때문에 게시물이 여기 관련이 있다고 생각하지 않습니다. 게다가 성능은 구현에 따라 매우 다릅니다. –

+0

@a_horse_with_no_name : 성능이 특정 구현에 동의합니다. 그래도'lag()'함수가 없으면'Row_Number()'윈도우 함수 (또는 자기 조인에 대한 다른 방법)를 사용하여 자체 조인이 필요합니다. –

답변

2
SELECT name, 
     age, 
     (lag(age, 1, age) over (order by age desc)) - age as agediff 
FROM your_table 
ORDER BY age desc 
+0

@ypercube : 감사합니다. 결정된. –

+0

감사합니다. 그것은 작동한다. – Raj