Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Only — funkcja wykresu

Funkcja Only() zwraca wartość tylko wtedy, gdy z agregowanych danych możliwy jest dokładnie jeden wynik. Na przykład wyrażenie szukające jedynego produktu o cenie jednostkowej równej 9 zwróci NULL, jeśli istnieje więcej niż jeden produkt o cenie jednostkowej równej 9.

Składnia:  

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

Typ zwracanych danych: dual

Argumenty:  

Argumenty
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.
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

WskazówkaZ funkcji Only() należy skorzystać, jeśli w przypadku występowania w danych z próby wielu tych samych wartości ma zostać zwrócona wartość NULL.

Przykłady i wyniki:  

Dane
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 i wyniki
Przykłady Wyniki

Only({<UnitPrice={9}>} Product)

BB, ponieważ jest to jedyna wartość w kolumnie Product, dla której wartość w kolumnie UnitPrice wynosi 9.

Only({<Product={DD}>} Customer)

Betacab, ponieważ jest to jedyny Customer, który sprzedaje Product o nazwie „DD”.

Only({<UnitPrice={20}>} UnitSales)

Wartość w kolumnie UnitSales, dla której wartość w kolumnie UnitPrice wynosi 20, to 2, ponieważ jest tylko jedna wartość w kolumnie UnitSales, dla której wartość w kolumnie UnitPrice wynosi 20.

Only({<UnitPrice={15}>} UnitSales)

NULL, ponieważ istnieją dwie wartości w kolumnie UnitSales, dla których wartość w kolumnie UnitPrice wynosi 15.

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 '|');

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!