DAX 子查询度量?
DAX subquery measure?
我正在努力处理 DAX 查询,想知道您是否可以提供帮助?
考虑这个 table(或可视化)称为 'Builds':
Build....App....Status
Build1...App1...UAT
Build1...App2...Complete
Build2...App1...Complete
Build2...App2...Complete
我想添加一个名为 'AppsOutstanding' 的度量列,以显示该构建的非 'Complete' 的应用程序计数。像这样:
Build....App....Status......AppsOutstanding
Build1...App1...UAT.........1
Build1...App2...Complete....1
Build2...App1...Complete....0
Build2...App2...Complete....0
我几乎需要做一个 'subquery' 测量!?类似于:
SELECT COUNT(Status) FROM Builds
WHERE Build = [The Build In This Row]
AND Status <> 'Complete'
我有点困惑如何将其转换为 DAX?这是我不成功的尝试:
AppsUnavailable = CALCULATE (
count(Builds[Build]),
CALCULATETABLE (
SUMMARIZE ( Builds,Builds[Status] ),
Builds[Status] <> "Complete"
))
提前致谢!
更新
我试过了,但计数不起作用,而且这个 DAX 从我的实际结果中过滤掉了“完成”状态!我不想要的。我只想从计数度量中过滤掉“完成”状态....
AppsUnavailable =
CALCULATE (
COUNT ( Builds[Build] ),
FILTER (
ALL ( Builds[Build] ),
Builds[Build] = SELECTEDVALUE ( Builds[Build] )
),
FILTER (
ALL ( Builds[Status] ),
Builds[Status] <> "Complete"
)
)
更新 2
我认为我做的事情从根本上是错误的。我真的很愚蠢,只找到其他同名的 'Builds',但它仍然只有 returns 个 1!
AppsUnavailable =
CALCULATE (
COUNT ( Builds[Build] ),
FILTER (
ALL ( Builds[Build] ),
Builds[Build] = SELECTEDVALUE ( Builds[Build] )
)
)
更新 3
此查询(在单个 table(无连接)样本上进行测试时)生成此:
Build....App....Status......AppsOutstanding
Build1...App1...UAT.........1
Build1...App2...Complete....0
Build1...App2...UAT.........1
Build2...App1...Complete....0
Build2...App2...Complete....0
但我确实需要这个:
Build....App....Status......AppsOutstanding
Build1...App1...UAT.........2
Build1...App2...Complete....0
Build1...App2...UAT.........2
Build2...App1...Complete....0
Build2...App2...Complete....0
所以 Build1 有 2 个应用程序不完整。
然后我需要研究为什么我在 'live' 环境中得到全 1。它必须与过滤 2 tables 而不是 1....
有关
您可以将 [The Build In This Row] 替换为 SELECTEDVALUE ( Builds[Build] )。
试试这个:
AppsUnavailable =
CALCULATE (
COUNT ( Builds[App] ),
FILTER (
ALL ( Builds[Status], Builds[Build] ),
Builds[Build] = SELECTEDVALUE ( Builds[Build] )
&& Builds[Status] <> "Complete"
)
) + 0
powerBI Table 可视化内部使用 SUMMARIZECOLUMNS,它从度量中删除了没有数据的行。您有 2 个选择:
- 右键单击 GroupBy Column -> “显示没有数据的项目”
-在最后一个括号
后的计算中添加+0
更新:
CALCULATE (
COUNT ( YourTable[App] ),
FILTER (
ALL ( YourTable[App], YourTable[Build], YourTable[Status] ),
YourTable[Build] = SELECTEDVALUE ( YourTable[Build] )
&& YourTable[Status] <> "Complete"
)
) + 0
我正在努力处理 DAX 查询,想知道您是否可以提供帮助?
考虑这个 table(或可视化)称为 'Builds':
Build....App....Status
Build1...App1...UAT
Build1...App2...Complete
Build2...App1...Complete
Build2...App2...Complete
我想添加一个名为 'AppsOutstanding' 的度量列,以显示该构建的非 'Complete' 的应用程序计数。像这样:
Build....App....Status......AppsOutstanding
Build1...App1...UAT.........1
Build1...App2...Complete....1
Build2...App1...Complete....0
Build2...App2...Complete....0
我几乎需要做一个 'subquery' 测量!?类似于:
SELECT COUNT(Status) FROM Builds
WHERE Build = [The Build In This Row]
AND Status <> 'Complete'
我有点困惑如何将其转换为 DAX?这是我不成功的尝试:
AppsUnavailable = CALCULATE (
count(Builds[Build]),
CALCULATETABLE (
SUMMARIZE ( Builds,Builds[Status] ),
Builds[Status] <> "Complete"
))
提前致谢!
更新
我试过了,但计数不起作用,而且这个 DAX 从我的实际结果中过滤掉了“完成”状态!我不想要的。我只想从计数度量中过滤掉“完成”状态....
AppsUnavailable =
CALCULATE (
COUNT ( Builds[Build] ),
FILTER (
ALL ( Builds[Build] ),
Builds[Build] = SELECTEDVALUE ( Builds[Build] )
),
FILTER (
ALL ( Builds[Status] ),
Builds[Status] <> "Complete"
)
)
更新 2
我认为我做的事情从根本上是错误的。我真的很愚蠢,只找到其他同名的 'Builds',但它仍然只有 returns 个 1!
AppsUnavailable =
CALCULATE (
COUNT ( Builds[Build] ),
FILTER (
ALL ( Builds[Build] ),
Builds[Build] = SELECTEDVALUE ( Builds[Build] )
)
)
更新 3
此查询(在单个 table(无连接)样本上进行测试时)生成此:
Build....App....Status......AppsOutstanding
Build1...App1...UAT.........1
Build1...App2...Complete....0
Build1...App2...UAT.........1
Build2...App1...Complete....0
Build2...App2...Complete....0
但我确实需要这个:
Build....App....Status......AppsOutstanding
Build1...App1...UAT.........2
Build1...App2...Complete....0
Build1...App2...UAT.........2
Build2...App1...Complete....0
Build2...App2...Complete....0
所以 Build1 有 2 个应用程序不完整。
然后我需要研究为什么我在 'live' 环境中得到全 1。它必须与过滤 2 tables 而不是 1....
有关您可以将 [The Build In This Row] 替换为 SELECTEDVALUE ( Builds[Build] )。 试试这个:
AppsUnavailable =
CALCULATE (
COUNT ( Builds[App] ),
FILTER (
ALL ( Builds[Status], Builds[Build] ),
Builds[Build] = SELECTEDVALUE ( Builds[Build] )
&& Builds[Status] <> "Complete"
)
) + 0
更新:
CALCULATE (
COUNT ( YourTable[App] ),
FILTER (
ALL ( YourTable[App], YourTable[Build], YourTable[Status] ),
YourTable[Build] = SELECTEDVALUE ( YourTable[Build] )
&& YourTable[Status] <> "Complete"
)
) + 0