Was möchte ich eigentlich machen?
Die Datengrundlage wird in einer Ansicht zusammengestellt, und besteht aus einer Spalte Double-Werte. Die Werte sind zeitlich sortiert, der neueste Wert steht oben. Derzeit arbeiten alle Funkionen fest mit dieser Ansicht. (Die Datenquelle zu parametrisieren soll später noch kommen.)
Nun gibt es z.B. eine Funktion Standardabweichung(Idx Int, Cnt Int), welche die Standardabweichung für Cnt Werte ab dem (Idx+1)ten Wert berechnet.
In einer anderen Funktion brauche ich die Standardabweichungen von GrpCnt Gruppen mit je GrpSize Werten. D.h., die Werte in der Ansicht werden gedanklich zu Gruppen zusammengefasst, z.B. die 1. 5 Werte, dann die 2. 5 Werte, die 3. 5 Werte usw., oder die 1. 6 Werte, dann die 2. 6 Werte, die 3. 6 Werte uswusf...
Ich brauche also eine Funktion F(Idx Int, GrpCnt Int, GrpSize Int), die mir (u.a.) die Standardabweichungen für GrpCnt Gruppen mit je GrpSize Werten und mit der ersten Gruppe beginnend ab dem (Idx+1)ten Wert zusammenstellt.
Zur Verdeutlichung:
SQL-Code:
delimiter $$
drop function if exists F$$
create function F (Idx Int, GrpCnt Int, GrpSize Int) returns ???
begin
declare Result ???;
declare I Int;
declare Stabw Double;
-- Für jede Gruppe...
set I = 0;
while I < GrpCnt do
set Stabw = Standardabweichung(Idx + I * GrpSize, GrpSize);
-- Und wo nun die Standardabweichung zwischenspeichern?
set I = I + 1;
end while;
return Result;
end$$
delimiter ;
Die Frage ist also: Wie kann ich ein "Array" zurückgeben? Und der Vollständigkeit halber: Wie kann ich die Datenquelle parametrisieren? Wie kann ich einer Funktion sagen, dass sie die Werte aus dieser oder jener Ansicht oder Tabelle nehmen soll?
Das ist es was ich machen will. Bin für jede Hilfe dankbar. Und, vielen Dank soweit.