[知识体系] 理解 ROW

  [复制链接]
查看95433 | 回复111 | 2021-2-21 18:52:22 | 显示全部楼层 |阅读模式
返回一个单行表,其中包含由 DAX 表达式指定的新列。

ROW
  1. ROW ( <Name>, <Expression>, [<Name>, <Expression>], [ … ] )
复制代码
参数属性描述
Name可重复新列的名称
Expression可重复新列使用的表达式


EVALUATE只能返回表。如果你想计算一个或多个标量值,在缺少表环境的情况下可以使用 ROW 函数,它返回一个包含所需列的单行表。与 ADDCOLUMNSSELECTCOLUMNS 的作用类似,对于函数的每一列,你都需要指定一个名称(必须是一个常量字符串),然后计算表达式,以便在返回的行中为该列提供唯一值。命名规则与 ADDCOLUMNSSELECTCOLUMNS 函数的规则相同,可以根据需要添加任意数量的列。

示例用法

当需要返回多个标量值的时候,可以用 ROW 函数将所有度量值放入一个查询,例如,以下查询返回一行两列的表,包含 2008 年和 2009 年的销售数量:
  1. EVALUATE
  2. ROW (
  3.     "Quantity 2008", CALCULATE (
  4.         SUM ( Sales[Quantity] ),
  5.         'Date'[Calendar Year Number] = 2008
  6.     ),
  7.     "Quantity 2009", CALCULATE (
  8.         SUM ( Sales[Quantity] ),
  9.         'Date'[Calendar Year Number] = 2009
  10.     )
  11. )
复制代码

结果中的列不具备数据模型中物理列的沿袭


7073211936381.png

查询结果


你可以在任何需要引用表的 DAX 表达式中使用 ROW 函数。如果 DAX 版本支持,可以使用 UNION 函数组合多个行,以返回任意定义的多个行组成的表。

更简单的方式:表构造器


在某些情况下,我们甚至不需要带列名的表,这个时候表构造器是比 ROW 函数更好的选择,比如 IN 条件,用 DAX Studio 调试度量值。例如下面这个查询:
  1. ROW (
  2.     "Sales Amount", [Sales Amount],
  3.     "Margin", [Margin]
  4. )
复制代码

等价于表构造器
  1. { ( [Sales Amount], [Margin] ) }
复制代码

唯一区别是后者在结果表使用默认的列名 Value1,Value2
回复

使用道具 举报

老林 | 2021-4-24 13:12:03 来自手机 | 显示全部楼层
啥玩应呀
回复

使用道具 举报

自由仔 | 2021-6-4 11:33:19 | 显示全部楼层
非常好,顶一下
回复

使用道具 举报

kyszg | 2021-6-24 18:26:26 | 显示全部楼层
垃圾内容,路过为证。
回复

使用道具 举报

wssessw | 2021-8-3 22:58:30 | 显示全部楼层
老大,这个说的很好,这个真不错!
回复

使用道具 举报

嘉明 | 2021-10-8 09:00:53 | 显示全部楼层
边撸边过
回复

使用道具 举报

2046 | 2021-10-16 15:40:06 来自手机 | 显示全部楼层
不错 支持下
回复

使用道具 举报

SilverPOLO | 2021-10-24 13:18:43 | 显示全部楼层
呵呵,明白了
回复

使用道具 举报

hrs222hrs | 2021-11-9 20:20:04 来自手机 | 显示全部楼层
忙完了,来看看视频
回复

使用道具 举报

lwfeng | 2021-11-18 06:23:44 | 显示全部楼层
边撸边过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则