【问题标题】:DAX - Nested Calculated queriesDAX - 嵌套计算查询
【发布时间】:2018-04-05 14:26:06
【问题描述】:

我有一个大数据文件(420 万行和 10 列),我正在尝试使用度量进行一些过滤。但是,当我尝试使用嵌套度量时,一切都会爆炸,我不确定为什么。

到目前为止,我有两个明确的措施:

MaxValue:=MAX('Element Forces - Area Shells'[Value])

MaxIndex:=
CALCULATE(
    FIRSTNONBLANK('Element Forces - Area Shells'[Index],1),
    FILTER(
        ALL('Element Forces - Area Shells' ),
        'Element Forces - Area Shells'[Value]=MAX('Element Forces - Area Shells'[Value])
    )
)

这行得通,我得到了正确的值。但是,正如我所见,我应该能够将 MaxValue 度量放入 MaxIndex 度量中,但随后一切都停止了。

我正在描绘的新度量应该是这样的:

MaxIndex:=
CALCULATE(
    FIRSTNONBLANK('Element Forces - Area Shells'[Index],1),
    FILTER(
        ALL('Element Forces - Area Shells' ),
        'Element Forces - Area Shells'[Value]=[MaxValue])
    )
)

但它只是不起作用。我做错了什么?

【问题讨论】:

    标签: nested dax


    【解决方案1】:

    虽然我现在无法测试它,但我认为它是由隐式上下文转换引起的*。当您在另一个度量中引用一个度量时,内部会涉及一个 CALCULATE(),因此会涉及上下文转换。在这种情况下,这不是你想要的。我建议您使用变量来创建一个度量:

    MaxIndex:=
    VAR MaxValue = MAX('Element Forces - Area Shells'[Value])
    RETURN
    CALCULATE(
        FIRSTNONBLANK('Element Forces - Area Shells'[Index],1),
        FILTER(
            ALL('Element Forces - Area Shells' ),
            'Element Forces - Area Shells'[Value] = MaxValue )
        )
    )
    

    注意:我不确定,如果我错了,请原谅我:)

    另外,VAR的使用,来自MSDN docs

    此功能仅包含在 SQL Server 2016 Analysis Services (SSAS)、Excel 2016 中的 Power Pivot 和 Power BI Desktop 中。此处提供的信息可能会发生变化。

    【讨论】:

    • 对不起,我想我可能有点糊涂了。我认为 DAX 仅用于 PowerPivot,但通过谷歌搜索我可以看到它用于 Visual Studio,我认为您刚刚编写的代码应该用于?如果我将它复制到 PowerPivot 中的显式度量单元中,我会收到一条错误消息,指出它不完整,但我认为 PowerPivot 不会接受带有定义的语法?
    • DAX 用于 PowerPivot、SQL Server 分析服务(表格)和 PowerBI。您使用的是哪个版本的 PowerPivot?自 2016 年起支持变量:msdn.microsoft.com/query-bi/dax/var-dax
    • 哎呀,我公司还在2013版本,希望近期能升级,可惜我的项目不允许我等。
    • 但是第二个措施效果很好,对吧?所以你不能使用变量或嵌套度量,但它会产生正确的值?
    • 好吧。我想稍后在另一个度量中使用第二个度量,但就像现在一样,我只需要在下一个度量中复制公式,这只会滚雪球并创建一些非常大且难以管理的公式。一切都变得非常缓慢。
    猜你喜欢
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多