Sum — funkcja wykresu

Funkcja Sum() oblicza sumę wartości z wyrażenia lub pola dla wszystkich agregowanych danych.

Syntax:  

Sum([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] expr])

Return data type: numeric

Arguments:  

Argument Opis
expr Wyrażenie lub pole zawierające mierzone dane.
SetExpression Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. Alternatywny zestaw wierszy można zdefiniować za pomocą wyrażenia analizy zestawów.
DISTINCT Jeśli przed argumentami funkcji występuje słowo DISTINCT, wówczas duplikaty wynikające z wyników obliczenia argumentów funkcji są pomijane.
Uwaga: Kwalifikator DISTINCT jest obsługiwany, należy jednak korzystać z niego bardzo ostrożnie, ponieważ może sprawić, że odbiorca uzna, że pokazywana jest wartość łączna, podczas gdy w rzeczywistości niektóre dane zostały pominięte.
TOTAL

Jeśli słowo TOTAL występuje przed argumentami funkcji, wówczas obliczenie jest wykonywane względem wszystkich możliwych wartości z uwzględnieniem bieżących selekcji, nie tylko tych należących do bieżącej wartości wymiaru, to znaczy z pominięciem wymiarów wykresu.

Korzystając z polecenia TOTAL [<fld {.fld}>], gdzie po kwalifikatorze TOTAL podana jest lista nazw pól stanowiących podzbiór zmiennych wymiarów wykresu, można utworzyć podzbiór wszystkich możliwych wartości.

Określenie zakresu agregacji

Examples and results:  

Customer Product UnitSales UnitPrice
Astrida AA 4 16
Astrida AA 10 15
Astrida BB 9 9
Betacab BB 5 10
Betacab CC 2 20
Betacab DD - 25
Canutility AA 8 15
Canutility CC - 19
Przykłady Wyniki

Sum(UnitSales)

38. Łączna suma wartości z kolumny UnitSales.

Sum(UnitSales*UnitPrice)

505. Łączna suma wartości z kolumny UnitPrice pomnożonych przez wartości z kolumny UnitSales.

Sum(TOTAL UnitSales*UnitPrice)

505 dla wszystkich wierszy w tabeli oraz jako łączna suma, ponieważ kwalifikator TOTAL informuje o tym, że suma nadal wynosi 505, bez uwzględnienia wymiarów wykresu.

Wybierz Customer B.

Sum({1} TOTAL UnitSales*UnitPrice)

505, niezależnie od dokonanej selekcji, ponieważ wyrażenie Set Analysis {1} określa zestaw rekordów, które zostaną ocenione w kategorii ALL, bez względu na dokonaną selekcję.

Dane zastosowane w przykładach:

ProductData:

LOAD * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD||25

Canutility|AA|8|15

Canutility|CC||19

] (delimiter is '|');