RangeAvg — funkcja skryptu i funkcja wykresu
Funkcja RangeAvg() zwraca średnią wartość z zakresu. Argumentem wejściowym funkcji może być zakres wartości lub wyrażenie.
Składnia:
RangeAvg(first_expr[, Expression])
Typ zwracanych danych: numeric
Argumenty:
Argumenty tej funkcji mogą zawierać funkcje międzywierszowe, które same zwracają listę wartości.
Argument | Opisu |
---|---|
first_expr | Wyrażenie lub pole zawierające mierzone dane. |
Expression | Opcjonalne wyrażenia lub pola zawierające mierzony zakres danych. |
Ograniczenia:
Jeśli nie zostanie znaleziona żadna wartość liczbowa, zostanie zwrócona wartość NULL.
Przykłady i wyniki:
Przykłady | Wyniki |
---|---|
RangeAvg (1,2,4) |
Zwraca wartość 2,33333333 |
RangeAvg (1,'xyz') | Zwraca wartość 1 |
RangeAvg (null( ), 'abc') | Zwraca wartość NULL |
Przykład:
Dodaj skrypt przykładowy do aplikacji i uruchom ją. Aby zobaczyć wynik, dodaj do arkusza w swojej aplikacji pola wyszczególnione w kolumnie wyników.
RangeTab3:
LOAD recno() as RangeID, RangeAvg(Field1,Field2,Field3) as MyRangeAvg INLINE [
Field1, Field2, Field3
10,5,6
2,3,7
8,2,8
18,11,9
5,5,9
9,4,2
];
Tabela wynikowa przedstawia zwrócone wartości MyRangeAvg dla każdego z rekordów w tabeli.
RangeID | MyRangeAvg |
---|---|
1 | 7 |
2 | 4 |
3 | 6 |
4 | 12.666 |
5 | 6.333 |
6 | 5 |
Przykład z wyrażeniem:
RangeAvg (Above(MyField),0,3))
Zwraca średnią kroczącą wyniku zakresu trzech wartości z kolumny MyField obliczaną dla bieżącego wiersza oraz dwóch wierszy powyżej niego. Jeśli trzeci argument ma wartość 3, funkcja Above() zwraca trzy wartości (o ile istnieje wystarczająca liczba wierszy powyżej), które stanowią dane wejściowe dla funkcji RangeAvg().
Dane zastosowane w przykładach:
MyField | RangeAvg (Above(MyField,0,3)) | Comments |
---|---|---|
10 | 10 | Jest to najwyższy wiersz, zakres obejmuje tylko jedną wartość. |
2 | 6 | Nad tym wierszem jest tylko jeden wiersz, zakres jest zatem następujący: 10,2. |
8 | 6.6666666667 | Odpowiednik funkcji RangeAvg(10,2,8) |
18 | 9.333333333 | - |
5 | 10. 333333333 | - |
9 | 10.6666666667 | - |
RangeTab:
LOAD * INLINE [
MyField
10
2
8
18
5
9
] ;