COUNTAX (DAX) 和 COUNTX (DAX) 的文档指出,第二个参数是为每一行计算的表达式。
请参阅:https : //docs.microsoft.com/en-us/dax/countax-function-dax
这正是我需要的,但我无法弄清楚“表达”应该是什么样子。
微软文档中给出的例子是这样的:
=COUNTAX(FILTER('Reseller',[Status]="Active"),[Phone])
Run Code Online (Sandbox Code Playgroud)
但是第二个参数 ( [Phone]
) 看起来不像表达式。我期望中的表达类似于"value > 3 AND value <= 10"
这里可以用什么样的表达方式?
示例中[Phone]
是针对结果表中的每一行计算的表达式。为了澄清,由于COUNTAX
和COUNTX
返回非空行的计数,列中非空值的计数[Phone]
是计算表达式。FILTER
将函数应用于表后,表达式将相当于COUNT([Phone])
此上下文。使用Dax Studio中的服务器计时功能,可以查看传递到存储引擎的文本表示形式。在这种情况下,您将在用作表达式的列的子句中看到一个查询,就像在本例中一样,选择了该函数,因为任何带有空白的行都已被过滤掉。COUNTX
IS NOT NULL
WHERE
[Phone]
COUNT
[Phone]
下面的语句是 DAX Studio 中服务器计时功能的示例查询,使用您问题中的示例度量。正如您所看到的,该子句中有两个过滤器WHERE
。列上的第一个Status
,仅返回活动的行。第二个是消除Phone
列中的空值。这使得COUNT
聚合函数对列中具有活动值Status
和非空值的所有行进行计数Phone
,这相当于对Phone
具有活动值的列进行计数Status
。这里的查询只是发送到存储引擎的请求的文本表示,因此显示的语法不是实际的 SQL,但可以让您更好地了解 DAX 的处理方式。
SET DC_KIND="AUTO";
SELECT
COUNT ( )
FROM 'Reseller'
WHERE
'Reseller'[Status] = 'Active' AND
'Reseller'[Phone] IS NOT NULL;
'Estimated size ( volume, marshalling bytes ) : 224012, 1392082'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4878 次 |
最近记录: |