为什么要同时使用 ALLSELECTED() 和 FILTER()?
Why using ALLSELECTED() AND FILTER() together?
我正在尝试理解以下 DAX 代码:
CALCULATE(
SUM(Revenue[Net])
,FILTER('Center', NOT 'Center'[Acc] IN {"RSM", BLANK() })
,ALLSELECTED()
,VALUES('Customer'[Customer Number])
)
我有以下问题:
ALLSELECTED有什么用??根据定义 ALLSELECTED returns table 中的所有行,忽略可能已在查询内部应用的任何过滤器,但保留来自外部的过滤器。 https://dax.guide/allselected/
那么,如果下一行 (ALLSELECTED) 将强制忽略它,那么编写 FILTER() 有什么意义?!?
另外根据定义:
CALCULATE 只是一个后跟过滤器的表达式...
VALUES() 有什么用?它看起来不是过滤器,所以它怎么会出现在那里呢? (根据定义 VALUES(): returns a one-column table 包含来自指定列的不同值 .)
我不明白这是在返回什么?是 SUM() 还是 VALUES()?
(我来自 SQL 背景,所以任何 sql-friendly 回答都非常感谢)。
在 Dax 中,每个过滤器都是 table 个值,它看起来类似于 INNER JOIN;
当您需要保留行上下文时,ALLSELECTED 很有用(这也是 DAX 中的过滤器)。您可以在 FILTER 函数中使用 ALLSELECTED。
为了更好地了解什么引擎,您可以将 DaxStudio 与 ServerTiming 结合使用;
如您所见,简单说明一下:
SELECT
SUM ( 'Table'[Cost Centre] )
FROM 'Table'
WHERE
'Table'[Project] NIN ( 'AB' ) ;
您可以找到 Alberto Ferrari 和 Marco Russo 的有用文章:
https://www.sqlbi.com/tv/auto-exist-on-clusters-or-numbers-unplugged-22/
我正在尝试理解以下 DAX 代码:
CALCULATE(
SUM(Revenue[Net])
,FILTER('Center', NOT 'Center'[Acc] IN {"RSM", BLANK() })
,ALLSELECTED()
,VALUES('Customer'[Customer Number])
)
我有以下问题:
ALLSELECTED有什么用??根据定义 ALLSELECTED returns table 中的所有行,忽略可能已在查询内部应用的任何过滤器,但保留来自外部的过滤器。 https://dax.guide/allselected/
那么,如果下一行 (ALLSELECTED) 将强制忽略它,那么编写 FILTER() 有什么意义?!?
另外根据定义:
CALCULATE 只是一个后跟过滤器的表达式...
VALUES() 有什么用?它看起来不是过滤器,所以它怎么会出现在那里呢? (根据定义 VALUES(): returns a one-column table 包含来自指定列的不同值 .)
我不明白这是在返回什么?是 SUM() 还是 VALUES()?
(我来自 SQL 背景,所以任何 sql-friendly 回答都非常感谢)。
在 Dax 中,每个过滤器都是 table 个值,它看起来类似于 INNER JOIN; 当您需要保留行上下文时,ALLSELECTED 很有用(这也是 DAX 中的过滤器)。您可以在 FILTER 函数中使用 ALLSELECTED。
为了更好地了解什么引擎,您可以将 DaxStudio 与 ServerTiming 结合使用;
如您所见,简单说明一下:
SELECT
SUM ( 'Table'[Cost Centre] )
FROM 'Table'
WHERE
'Table'[Project] NIN ( 'AB' ) ;
您可以找到 Alberto Ferrari 和 Marco Russo 的有用文章: https://www.sqlbi.com/tv/auto-exist-on-clusters-or-numbers-unplugged-22/