Re: SQL request

From: Hank Robinson <cudau_at_csv.warwick.ac.uk>
Date: 1 Dec 1993 13:15:27 -0000
Message-ID: <2di5df$74o_at_crocus.csv.warwick.ac.uk>


In article <1993Dec1.092026.17929_at_nenuphar.saclay.cea.fr>

        daletto_at_tchad.cad.cea.fr (D'Aletto Tony ) writes:

> here is my table T1 ( row_number integer(2)
> distance number
> temp number)
 

> between 1 to 11 here are the rows in the table :
> 1 d1 t1
> 2 d2 t2
> 3 d3 t3
> ...
> 11 d11 t11
> i would like to get via sqlplus/PL.SQL
> temps(i) versius (d(i)+ d(i+1))/2
 

> e.i. (d1+d2)/2 t1
> (d2+d3)/2 t2 ...
> and i can't !
> I will be interested in any solutions ...
> thanks
> Tony

Assuming that your row_numbers are consecutive and all 1 apart;

Select		(A.Distance + B.Distance) / 2,
		A.Temp
From		T1 A,
		T1 B
Where		A.Row_Number = B.Row_Number - 1
Order By	A.Row_Number;

If your row_numbers are merely ordered but not necessarily all 1 apart;

Select		(A.Distance + B.Distance) / 2,
		A.Temp
From		T1 A,
		T1 B
Where		A.Row_Number < B.Row_Number	And
		Not Exists (	Select	Null
				From	T1
				Where	Row_Number > A.Row_Number	And
					Row_Number < B.Row_Number)
Order By	A.Row_Number;

Hope this helps.

Hank Robinson,
Computing Services,
University of Warwick. Received on Wed Dec 01 1993 - 14:15:27 CET

Original text of this message