Re: SQL request
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