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.

Syntax:  

RangeAvg(first_expr[, Expression])

Return data type: numeric

Arguments:  

Argumenty tej funkcji mogą zawierać funkcje międzywierszowe, które same zwracają listę wartości.

Argument Opis
first_expr Wyrażenie lub pole zawierające mierzone dane.
Expression Opcjonalne wyrażenia lub pola zawierające mierzony zakres danych.

Limitations:  

Jeśli nie zostanie znaleziona żadna wartość liczbowa, zostanie zwrócona wartość NULL.

Examples and results:  

Przykłady Wyniki
RangeAvg (1,2,4)

Zwraca wartość 2,33333333

RangeAvg (1,'xyz') Zwraca wartość 1
RangeAvg (null( ), 'abc') Zwraca wartość NULL

Dodaj skrypt przykładowy do aplikacji i uruchom ją. Następnie dodaj do arkusza w swojej aplikacji co najmniej pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.

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:

Porada: Aby przykład działał zgodnie z oczekiwaniami, wyłącz sortowanie pola MyField.
MyField RangeAvg (Above(MyField,0,3))  
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

] ;