Durchschnitt von z.B. 20 Vorgängerdatensätzen
am 15.06.2007 23:12:35 von h.schoene
Hallo,
habe eine bestehende Tabelle mit den Feldern id, wert1 und wert2. Feld
wert2 ist leer. Datensätze =3D mehrere Tausend.
Problem: Möchte in Feld wert2 den Durchschnitt der jeweils letzten 20
Vorgängerdatensätze einfügen.
Hat jemand dazu eine Idee?
Gruss Heiko
Re: Durchschnitt von z.B. 20 Vorgängerdatensätzen
am 15.06.2007 23:16:30 von h.schoene
On 15 Jun., 23:12, h.scho...@yahoo.de wrote:
> Hallo,
> habe eine bestehende Tabelle mit den Feldern id, wert1 und wert2. Feld
> wert2 ist leer. Datensätze =3D mehrere Tausend.
> Problem: Möchte in Feld wert2 den Durchschnitt der jeweils letzten 20
> Vorgängerdatensätze einfügen.
> Hat jemand dazu eine Idee?
>
> Gruss Heiko
Vergessen: Ich meine den Durchschnitt von wert1 der jeweils letzten 20
Vorgängerdatensätze.
Re: Durchschnitt von z.B. 20 Vorgängerdatensätzen
am 18.06.2007 14:38:23 von Daniel Fischer
h.schoene!
> Hallo,
> habe eine bestehende Tabelle mit den Feldern id, wert1 und wert2. Feld
> wert2 ist leer. Datensätze = mehrere Tausend.
> Problem: Möchte in Feld wert2 den Durchschnitt der jeweils letzten 20
> Vorgängerdatensätze einfügen.
> Hat jemand dazu eine Idee?
Ich fürchte, keine gute, ich bin erkältet...
Eine Anfang, für den id fortlaufend sein muss:
delimiter //
drop procedure if exists update_wert2//
create procedure update_wert2(cnt int)
begin
set @temp = 1;
update tab set wert2 = 0;
ll: loop
update tab as a inner join tab as b on a.id = b.id + @temp set a.wert2 = a.wert2 + b.wert1;
set @temp = @temp + 1;
if @temp <= cnt then iterate ll; end if;
leave ll;
end loop ll;
update tab set wert2 = wert2 / cnt;
end; //
delimiter ;
call update_wert2(20);
Gruß
Daniel