create or replace function stat (a out number , b out number ) return number as srednia number :=0; wariancja number :=0; d number :=0;
ilosc number :=50; wiersz tmp%rowtype; begin --tabela tmp pole wynik for licznik in 1..50 loop insert into tmp values (prwpod(500)); end loop;
select avg(wynik) into srednia from tmp; a:=srednia; ---------------------------- for wiersz in (select * from tmp) loop wariancja := wariancja + (wiersz.wynik - srednia)*(wiersz.wynik-srednia); end loop; wariancja := wariancja / ilosc; dbms_output.put_line('Wariancja '||wariancja); dbms_output.put_line('odchylenie standardowe '||sqrt(wariancja)); ---------------------------- for wiersz in (select * from tmp) loop d := d + abs(wiersz.wynik - 0.5); end loop; d := d / ilosc; dbms_output.put_line('odchylenie bezwzgledne '||d); b := d; delete from tmp; return null; end;
create table tmp ( wynik number
);
select * from tmp
declare a number; b number; w number; begin w :=stat(a,b); end;