DAX中的RANK函数详解:语法、参数及实战示例
创作时间:
作者:
@小白创作中心
DAX中的RANK函数详解:语法、参数及实战示例
引用
1
来源
1.
https://learn.microsoft.com/zh-cn/dax/rank-function-dax
在数据分析和商业智能领域,DAX(数据分析表达式)是微软Power BI等工具的核心语言。本文将详细介绍DAX中的RANK函数,包括其语法、参数、返回值以及实际应用场景,帮助读者掌握这一重要函数的使用方法。
RANK 函数概述
返回指定分区中当前上下文的排名,按指定顺序排序。 如果找不到匹配项,则排名为空。
语法
RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
参数
术语 | 定义 |
|---|---|
ties | (可选)定义在绑定两行或多行时如何处理排名。如果指定,则支持的值为 DENSE 或 SKIP。 如果省略:- 默认为 SKIP |
relation | (可选)从中返回输出行的表表达式。如果指定,则orderBy和partitionBy中的所有列都必须来自它。如果省略:必须显式指定-orderBy。- 所有orderBy列和partitionBy列必须完全限定,并且来自单个表。- 默认为orderBy和partitionBy中的所有列的 ALLSELECTED()。 |
axis | (可选)视觉形状中的轴。 仅在视觉计算中可用,并替换relation。 |
orderBy | (可选)一个 ORDERBY() 子句,其中包含定义每个分区的排序方式的列。如果省略:必须显式指定-relation。- 默认为relation中尚未在partitionBy中指定的每一列排序。 |
blanks | (可选)一个枚举,用于定义在对relation或axis进行排序时如何处理空值。支持的值为:DEFAULT(默认值),其中数值的行为为空值,在零值和负值之间排序。 字符串的行为是空值在所有字符串(包括空字符串)之前排序。FIRST,无论升序或降序排序顺序如何,空白始终在开头排序。LAST,无论升序还是降序排序顺序,始终在末尾对空白进行排序。注意,如果同时指定ORDERBY()函数中的blanks参数和空值,则单个 orderBy 表达式上的blanks优先于相关 orderBy 表达式,而未指定blanksorderBy 表达式将遵循父函数上的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的最终输出是排名数字。
- 如果存在matchBy,则 RANK 将尝试使用matchBy中的列,并partitionBy以 idenfity 当前行。
- 如果orderBy中指定的列和partitionBy无法唯一标识relation中的每一行,则两行或更多行的排名可能具有相同的排名,排名将由关系参数确定。
- RANK 返回总行的空值。 建议彻底测试表达式。
- RANK 不与 RANKX 进行比较,因为与 SUMX相比 SUM。
- reset只能用于视觉计算,不能与orderBy或partitionBy结合使用。 如果存在reset,则可以指定axis,但无法指定relation。
示例
示例 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))
创建两列,按每个月的总销售额(每年内)和整个历史记录进行排名。
相关内容
本文原文来自微软官方文档
热门推荐
咸阳蝉联“中国最具幸福感城市”:科技创新驱动,民生持续改善
秦朝古都咸阳:地理优势与历史辉煌
兵马俑博物馆和乾陵,谁才是咸阳旅游的顶流?
咸阳老街:一条街,一座城,2370年的文化传承
麻将机常见故障及解决方法(解决麻将机故障的有效方法)
麻将机常见故障及解决方法(解决麻将机故障的有效方法)
王者荣耀巅峰赛:如何利用卡分策略避免连败
江苏最值得去的25个AAAAA景区,去过20个算旅游达人,你去过几个
基建+1 宁扬长江大桥正式通车运营
牙齿“隐形杀手”:龋齿与牙周病的症状识别与防治
润扬大桥智慧管养:数字化转型的桥梁管养新实践
三坐标测量机:汽车制造中的高效精准测量利器
三坐标测量机如何改变汽车制造?
陶瓷材料革新,三坐标测量机迎来新纪元
结婚三金选购指南:价格从1万到10万,材质多样任你选
三金彩礼、嫁妆、房产:离婚财产分割法律指南
银耳与燕窝的营养成分及功效详解:常见问题解答
七大洲面积排名:带你了解地球版图的奇妙比例
桂圆生姜银耳汤:不只是甜品!一碗汤就能祛湿养颜 让你气色变好
黄花鱼花胶炖制秘诀:四步掌握这道“海洋人参”的滋补精髓
黄花胶烹饪全攻略:4种美味做法+营养价值详解
秋冬滋补佳品:花胶炖乳鸽的营养与烹饪指南
黄花胶泡发烹饪全攻略:三种方法让食材更美味
广西消委会约谈三大电商平台,网售儿童内裤四成不达标
准备了10000桌年猪饭,临安又喊全国游客来过大年
榆林靖边特色美食——杀猪菜
蓝花草栽培秘籍:土壤选择大揭秘
蓝花草种植技巧,让你秒变园艺达人
【元宵·汤圆】“胃”道五原 美食盛宴
秦咸阳宫遗址博物馆重开,揭秘古代建筑奇迹