我有一个度量值,它从名为 Message 的列中检索最新的捆绑字符串。
该度量值的工作原理是从 SessionEvents 中获取第一行,然后使用 MAXX 从该行中检索消息。
lastBundle =
VAR SINGLE_ROW = TOPN(1,, FILTER(SessionEvents, SessionEvents[StatusId]=4),
SessionEvents[DateTime],DESC)
return MAXX(SINGLE_ROW, [Message])
我想在计算列中使用此度量值,但不允许将 MAXX 作为计算列的一部分。
我应该如何更改此计算以在计算列中工作。
你可以使用SELECTCOLUMNS
而不是MAXX
,如本相关问答中所述:
返回按另一列排序的顶值
lastBundle =
SELECTCOLUMNS (
TOPN (
1,
FILTER ( SessionEvents, SessionEvents[StatusId] = 4 ),
SessionEvents[DateTime], DESC
),
"Message", SessionEvents[Message]
)
但是我看不出MAXX
也不应该工作的任何理由,除了您的TOPN
函数有一个额外的逗号。
编辑:如果您使用DirectQuery,我认为您根本无法做到这一点。从Microsoft的文档中:
计算列中的限制:计算列仅限于行内,例如,它们只能引用同一表的其他列的值,而不使用任何聚合函数。[...]为计算列创作 DAX 时,不支持的函数将不会在自动完成中列出,如果使用,则会导致错误。