Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Sortuje zbiór w kolejności malejącej i zwraca zbiór krotek o najwyższych wartościach, których łączna suma jest równa lub większa od określonego procentu.
Syntax
TopPercent(Set_Expression, Percentage, Numeric_Expression)
Arguments
Wyrażenie_docelowe
Poprawne wyrażenie z wyrażeń wielowymiarowych (MDX), które zwraca zbiór.
Procent
Poprawne wyrażenie liczbowe, które określa procent krotek, które mają zostać zwrócone.
Important
Procent musi być wartością dodatnią; wartości ujemne generują błąd.
Numeric_Expression
Poprawne wyrażenie liczbowe, które zazwyczaj jest wyrażeniem wielowymiarowych (MDX) współrzędnych komórek zwracających liczbę.
Remarks
Funkcja TopPercent oblicza sumę określonego wyrażenia liczbowego ocenionego na określonym zbiorze, sortując go w kolejności malejącej. Funkcja zwraca następnie elementy o najwyższej wartości, których skumulowany procent od całkowitej sumy wynosi co najmniej określony procent. Funkcja ta zwraca najmniejszy podzbiór zbioru, którego łączna suma wynosi co najmniej określony procent. Zwrócone elementy są uporządkowane od największego do najmniejszego.
Warning
Jeśli Numeric_Expression zwróci dowolną wartość ujemną, TopPercent zwraca tylko jeden (1) wiersz.
Zobacz drugi przykład, aby szczegółowo przedstawić to zachowanie.
Important
Podobnie jak funkcja BottomPercent , funkcja TopPercent zawsze łamie hierarchię.
Examples
A. Zwrot TopPercent
Poniższy przykład zwraca najlepsze miasta, które pomogły znaleźć się w pierwszej dziesiątce% sprzedaży resellerów w kategorii Rower. Wynik jest sortowany w kolejności malejącej, zaczynając od miasta o najwyższej wartości sprzedaży.
SELECT [Measures].[Reseller Sales Amount] ON 0,
TopPercent
({[Geography].[Geography].[City].Members}
, 10
, [Measures].[Reseller Sales Amount]
) ON 1
FROM [Adventure Works]
WHERE([Product].[Product Categories].[Bikes])
Powyższe wyrażenie daje następujące wyniki:
| Miejscowość | Wartość sprzedaży odsprzedawcy |
|---|---|
| Toronto | $3,508,904,84 |
| Londyn | $1,521,530.09 |
| Seattle | $1,209,418.16 |
| Paryż | $1,170,425.18 |
Oryginalny zestaw danych można uzyskać za pomocą następującego zapytania i zwraca 588 wierszy:
SELECT [Measures].[Reseller Sales Amount] ON 0,
Order
({[Geography].[Geography].[City].Members}
, [Measures].[Reseller Sales Amount]
, BDESC
) ON 1
FROM [Adventure Works]
WHERE([Product].[Product Categories].[Bikes])
B. Zrozum wpływ wartości ujemnych
Poniższy przewodnik pomoże zrozumieć wpływ wartości ujemnych na Numeric_Expression. Najpierw zbudujmy kontekst, w którym możemy przedstawić zachowanie.
Poniższe zapytanie zwraca tabelę resellerów z "Kwotą sprzedaży", "Całkowitym kosztem produktu" oraz "Zyskiem brutto", uporządkowaną w kolejności malejącej względem zysku. Prosimy pamiętać, że zysk ma wyłącznie ujemne wartości; Najmniejsza strata pojawia się na górze.
SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns
, ORDER( [Product].[Product Categories].[Bikes].[Touring Bikes].children, [Measures].[Reseller Gross Profit], BDESC ) ON rows
FROM [Adventure Works]
Powyższe zapytanie zwraca następujące wyniki; Rzędy ze środkowej części zostały usunięte dla większej czytelności.
| Rowery turystyczne | Wartość sprzedaży odsprzedawcy | Całkowity koszt produktu resellera | Zysk brutto resellera |
|---|---|---|---|
| Touring-2000 Blue, 50 | $157,444.56 | $163,112.57 | ($5,668.01) |
| Trasa koncertowa – Blue 2000, 46 | $321,027.03 | 333 021,50 dolarów | ($11,994.47) |
| Touring-3000 Blue, 62 | 87 773,61 dolarów | 100 133,52 dolarów | ($12,359.91) |
| ... | ... | ... | ... |
| Touring-1000 Yellow, 46 | $1,016,312.83 | $1,234,454.27 | ($218,141.44) |
| Touring-1000 Żółty, 60 | $1,184,363.30 | 1 443 407,51 dolarów | ($259,044.21) |
Gdybyś miał przedstawić 100 najlepszych% rowerów według zysku, napisałbyś pytanie w stylu:
SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns
, TOPPERCENT( [Product].[Product Categories].[Bikes].[Touring Bikes].children, 100,[Measures].[Reseller Gross Profit] ) ON rows
FROM [Adventure Works]
Prosimy zauważyć, że zapytanie wymaga stu procent (100%); To oznacza, że wszystkie wiersze powinny zostać zwrócone. Jednak ponieważ w Numeric_Expression są wartości ujemne , zwracany jest tylko jeden wiersz.
| Rowery turystyczne | Wartość sprzedaży odsprzedawcy | Całkowity koszt produktu resellera | Zysk brutto resellera |
|---|---|---|---|
| Touring-2000 Blue, 50 | $157,444.56 | $163,112.57 | ($5,668.01) |