NumericCount
Funkcja NumericCount() agreguje liczbę wartości liczbowych w poszczególnych wymiarach wykresu.
Składnia:
NumericCount([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] expr)
Typ zwracanych danych: liczba całkowita
Argumenty:
- expr: Wyrażenie lub pole zawierające mierzone dane.
- SetExpression: Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych rekordów zdefiniowanym przez daną 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.
- 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. Po kwalifikatorze TOTAL może następować lista zawierająca co najmniej jedną nazwę pola w nawiasach trójkątnych <fld>. Te nazwy pól powinny być podzbiorem zmiennych wymiaru wykresu.
Przykłady:
O ile nie podano inaczej, w poniższych przykładach założono, że selekcja obejmuje wszystkich klientów.
Przykład | Wynik |
---|---|
NumericCount([OrderNumber]) |
7, ponieważ trzy pola z dziesięciu pól w kolumnie OrderNumber są puste. Informacja„0” liczy się jako wartość, a nie jako pusta komórka. Jeśli jednak agregacja miary dla pewnego wymiaru da wynik 0, wymiar ten nie będzie uwzględniany na wykresach.
|
NumericCount([Product]) | 0, ponieważ wszystkie nazwy produktów mają postać tekstową. Za pomocą tej funkcji zazwyczaj sprawdza się, czy pola tekstowe nie zawierają wartości liczbowych. |
NumericCount (DISTINCT [OrderNumber])/Count(DISTINCT [OrderNumber]) | Zlicza liczbę wszystkich różniących się od siebie wartości liczbowych w kolumnie OrderNumber i dzieli tę liczbę przez liczbę wartości liczbowych i nieliczbowych w kolumnie OrderNumber. Jeśli wszystkie wartości w polach mają charakter liczbowy, zwracana jest wartość 1. Za pomocą tej funkcji zazwyczaj sprawdza się, czy wszystkie wartości w polach mają charakter liczbowy. W tym przykładzie w kolumnie OrderNumber występuje siedem różniących się od siebie wartości liczbowych z ośmiu różniących się od siebie wartości liczbowych i nieliczbowych. W takim przypadku wyrażenie to zwraca wartość 0,875. |
Dane zastosowane w przykładzie:
Temp:
LOAD * inline [
Customer|Product|OrderNumber|UnitSales|UnitPrice
Astrida|AA|1|4|16
Astrida|AA|7|10|15
Astrida|BB|4|9|9
Betacab|CC|6|5|10
Betacab|AA|5|2|20
Betacab|BB|1|25| 25
Canutility|AA|3|8|15
Canutility|CC|||19
Divadip|CC|2|4|16
Divadip|DD|3|1|25
] (delimiter is '|');
Customer | Product | OrderNumber | UnitSales | Unit Price |
---|---|---|---|---|
Astrida | AA | 1 | 4 | 16 |
Astrida | AA | 7 | 10 | 15 |
Astrida | BB | 4 | 9 | 9 |
Betacab | BB | 6 | 5 | 10 |
Betacab | CC | 5 | 2 | 20 |
Betacab | DD | 1 | 25 | 25 |
Canutility | AA | 3 | 8 | 15 |
Canutility | CC | - | - | 19 |
Divadip | AA | 2 | 4 | 16 |
Divadip | DD | 3 | - | 25 |