傳回指定之數據分割中目前內容的排名,依指定的順序排序。 如果找不到相符專案,則排名為空白。
語法
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
參數
術語 | 定義 |
---|---|
ties |
(選擇性)定義在系結兩個或多個數據列時如何處理排名。
如果指定,支援的值為 DENSE 或 SKIP。 如果省略: - 預設為 SKIP |
relation |
(選擇性)傳回輸出數據列的數據表運算式。 如果在視覺計算中使用,此參數會接受視覺圖形中的座標軸。
如果指定, orderBy 和 partitionBy 中的所有數據行都必須來自它。
如果省略:必須明確指定 - orderBy 。- 所有 orderBy 和 partitionBy 資料行都必須完整且來自單一數據表。
- 預設為 ALLSELECTED 和 orderBy 中的所有數據行 partitionBy ()。 |
orderBy |
(選擇性)ORDERBY() 子句,其中包含定義每個分割區排序方式的數據行。
如果省略:必須明確指定 - relation 。
- 預設會依尚未在 relation 中指定之 partitionBy 中的每個數據行排序。 |
blanks |
(選擇性)列舉,定義排序 relation 或 axis 時如何處理空白值。
支援的值為:
注意,當 blanks 函式中的 ORDERBY 參數和空白同時指定個別表達式時, 個別 orderBy 表達式會優先處理相關的 orderBy 表達式,而未指定 blanks 的 orderBy 表達式則會接受父函式上的 blanks 參數。 |
partitionBy |
(選擇性) PARTITIONBY() 子句,其中包含定義分割方式 relation 的數據行。 如果省略,則會將 relation 視為單一分割區。 |
matchBy |
(選擇性) MATCHBY() 子句,其中包含定義如何比對數據及識別目前數據列的數據行。 |
reset |
(選擇性)僅適用於視覺計算。 指出計算是否重設,以及視覺圖形數據行階層的哪個層級。 接受的值包括:目前視覺圖形中數據行的欄位參考、NONE (預設值)、LOWESTPARENT 、HIGHESTPARENT 或整數。 行為取決於整數符號:- 如果零或省略,則計算不會重設。 相當於 NONE 。
- 如果為正數,整數會識別從最高、與粒紋無關的數據行。 HIGHESTPARENT 相當於1。
- 如果為負數,整數會識別從最低開始的數據行,相對於目前的粒紋。 LOWESTPARENT 相當於 -1。 |
傳回值
目前內容的排名編號。
言論
每個
orderBy
、partitionBy
和matchBy
數據行都必須有對應的外部值,以下列行為協助定義要操作的目前數據列:- 如果只有一個對應的外部數據行,則會使用其值。
- 如果沒有對應的外部資料列,則:
-
RANK 會先判斷沒有對應外部數據行的所有
orderBy
、partitionBy
和matchBy
數據行。 - 針對 RANK 父內容中這些數據行之現有值的每個組合,會評估 RANK 並傳回一個數據列。
- RANK的最終輸出是排名數位。
-
RANK 會先判斷沒有對應外部數據行的所有
如果
matchBy
存在,則 RANK 會嘗試使用matchBy
中的數據行,並partitionBy
來想出目前的數據列。如果
orderBy
和partitionBy
中指定的數據行無法唯一識別relation
中的每個數據列,則兩個以上的數據列可能會有相同的排名,而且排名將由 ties 參數決定。RANK 傳回總計數據列的空白值。 建議您徹底測試表達式。
RANK 不會與 RANKX 比較,因為與 SUM比較 SUMX。
reset
只能用於視覺計算,而且不能與orderBy
或partitionBy
搭配使用。 如果reset
存在,則可以指定axis
,但無法指定relation
。如果的值
reset
是絕對值(也就是正整數或HIGHESTPARENT
字段參考),而且計算是在階層中目標層級或高於目標層級進行評估,則計算會針對每個個別元素重設。 也就是說,函式會在只包含該特定元素的數據分割內進行評估。
範例 1 - 計算結果列
下列 DAX 查詢:
EVALUATE
ADDCOLUMNS(
'DimGeography',
"Rank",
RANK(
DENSE,
'DimGeography',
ORDERBY(
'DimGeography'[StateProvinceName], desc,
'DimGeography'[City], asc),
LAST,
PARTITIONBY(
'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc
傳回數據表,依其 StateProvinceName 和 City,以相同的 EnglishCountryRegionName 來排名每個地理位置。 空白 orderBy
資料行值會在結尾排序。
範例 2 - 視覺計算
下列視覺計算 DAX 查詢:
SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))
SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))
建立兩個數據行,依每個月的總銷售額、每年內和整個歷程記錄來排名。
下列螢幕快照顯示視覺化矩陣和第一個視覺計算表示式: