Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Возвращает одиночный ранг заданного кортежа в заданном множестве.
Syntax
Rank(Tuple_Expression, Set_Expression [ ,Numeric Expression ] )
Arguments
Tuple_Expression
Допустимое выражение многомерных выражений (MDX), возвращающее кортеж.
Set_Expression
Допустимое выражение многомерных выражений (MDX), которое возвращает множество.
Numeric_Expression
Допустимое числовое выражение, которое обычно является многомерным выражением (MDX) координат ячеек, возвращающих число.
Remarks
Если задано числовое выражение, функция Rank определяет одноуровневый ранг для указанного кортежа, вычисляя заданное числовое выражение относительно кортежа. Если задано числовое выражение, функция Rank присваивает тот же ранг кортежам с дублирующимися значениями в наборе. Это присвоение одного и того же ранга дублирующимся значениям влияет на ранги последующих кортежей в наборе. Например, множество состоит из следующих кортежей, {(a,b), (e,f), (c,d)}. Кортеж (a,b) имеет такое же значение, как и кортеж (c,d). Если кортеж (a,b) имеет ранг 1, то оба (a,b) и (c,d) будут иметь ранг 1. Однако кортеж (e,f) будет иметь ранг 3. В этом наборе не могло быть кортежа с рангом 2.
Если числовое выражение не указано, функция Ранга возвращает одноразовое ординальное положение указанного кортежа.
Функция ранга не упорядочивает множество.
Пример
Следующий пример возвращает набор кортежей с клиентами и датами покупки, используя функции Filter, NonEmpty, Item и Rank для определения последней даты покупки каждого клиента.
WITH SET MYROWS AS FILTER
(NONEMPTY
([Customer].[Customer Geography].MEMBERS
* [Date].[Date].[Date].MEMBERS
, [Measures].[Internet Sales Amount]
) AS MYSET
, NOT(MYSET.CURRENT.ITEM(0)
IS MYSET.ITEM(RANK(MYSET.CURRENT, MYSET)).ITEM(0))
)
SELECT [Measures].[Internet Sales Amount] ON 0,
MYROWS ON 1
FROM [Adventure Works]
В следующем примере используется функция Order , а не Rank , для ранжирования членов иерархии города на основе показателя суммы продаж реселлером и затем отображается их в ранжированном порядке. Используя функцию Order для первого упорядочения множества членов иерархии городов, сортировка проводится только один раз, затем следует линейное сканирование перед представлением в порядке отсортов.
WITH
SET OrderedCities AS Order
([Geography].[City].[City].members
, [Measures].[Reseller Sales Amount], BDESC
)
MEMBER [Measures].[City Rank] AS Rank
([Geography].[City].CurrentMember, OrderedCities)
SELECT {[Measures].[City Rank],[Measures].[Reseller Sales Amount]} ON 0
,Order
([Geography].[City].[City].MEMBERS
,[City Rank], ASC)
ON 1
FROM [Adventure Works]