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中的服务器计时功能,可以查看传递到存储引擎的文本表示形式。在这种情况下,您将在用作表达式的列的子句中看到一个查询,就像在本例中一样,选择了该函数,因为任何带有空白的行都已被过滤掉。COUNTXIS NOT NULLWHERE[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 次 |
| 最近记录: |