Operaciones entre filas de tabla

Tengo la tabla "mytabla" con los siguientes datos:
item | valor
1      | 10.30
2      | 20.20
3      |  0.00
4      | 40.20
5      | 50.10
Quisiera sabe si se puede hacer una instrucción SQL que me haga el siguiente procedimiento:
( el proceso es el siguiente:
restar valor segundo - valor primero = 20.20-10.30 = 9.90
restar valor tercero - valor segundo = 0.00 - 20.20 = -20.20
restar valor cuarto - valor tercero = 40.20 - 0.00 = 40.20
restar valor quinto - valor cuarto = 50.10 - 40.20 = 9.90
y promediar solo los valores > 0
(9.90+40.20+9.90) / 3   = 20.00 )
Y que dicha instrucción SQL me retorne 20.00
Gracias de antemano por la respuesta...
{"Lat":-17.9787330955562,"Lng":-70.3125}

1 Respuesta

Respuesta
1
Si estas usando oracle no podrías hacerlo con una sentencia normal tendrías que usar plsql y si estas usando sqlserver tendrías que hacerlo con transact aquí te pongo una idea pero en plsql
Espero te sirva
Saludos
Declare
result number;
function promediar return number;
as
cursor c is select item,valor from prueba;
valor2 number:=0;
valor1 number;
result number:=0;
resultfinal:=0
begin
for i in c loop
valor1:=i.valor;
if result > 0 then
resultfinal:=result + resultfinal;
end if;
result:=valor1-valor2;
valor2:=valor1;
end loop
return trunc((resultfinal/3));
end promediar;
begin
result:=promediar;
dbms_output.put_line(result);
end;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas