powerbi - 平均值除以每个项目的数量
问题描述
我有三个表时间,SectorProject,产品项目。
Time AS(
SELECT *
FROM (VALUES(1011,48),(201,520),(36,120))V(id_project,time)),
SectorProject AS(
SELECT *
FROM (VALUES(1011,'BM'),(1011,'Fi'),(1011,'Om'),(201,'BM'),(36,'BM'))V(id_project,Sector1)),
prductProject AS(
SELECT *
FROM (VALUES(1011,'bike'),(1011,'velo'),(1011,'pc'),(201,'n'),(36, 'r' ))V(id_project,product))
我需要计算平均值除以每个项目的计数
使用 sql server 它将类似于以下代码:
avg( sum(time)) over (partition by t.id_project) * 1.0 / count(*) over (partition by t.id_project)
如何在 Dax 中做同样的事情。
解决方案
您应该查找“按类别求和”以找到正确的 DAX 模式。
SumOverPartition:=
CALCULATE (
SUM ( T[Sales] ),
REMOVEFILTERS ( 'T' ),
VALUES ( T[Category] )
)
CountOverPartition:=
CALCULATE (
COUNTROWS ( T ),
REMOVEFILTERS ( 'T' ),
VALUES ( T[Category] )
)
您也可以使用 ALLEXCEPT 函数来实现它,但 REMOVEFILTERS 和 VALUE 对更好。学会了艰难的方式。
https://www.sqlbi.com/articles/using-allexcept-versus-all-and-values/ 在那篇文章中,他们使用古老的名称 ALL 而不是REMOVEFILTERS。
如果您希望它在计算列中,那么您必须用另一个 CALCULATE 包装它。
SumOverPartition:=
CALCUALTE
CALCULATE (
SUM ( T[Sales] ),
REMOVEFILTERS ( 'T' ),
VALUES ( T[Category] )
)
)
推荐阅读
- python - 根据折叠量计算标签分布
- amazon-web-services - 使用 boto3 在 EFS 中创建目录
- raspberry-pi - Raspberry Pi 4 上的 SDL2:SDL 初始化失败 没有可用的视频设备
- python - 将散点图合并为一个图形
- nested - Typo3 > 9.4 - Typoscript 中的嵌套条件可用?
- python - 在主 GUI 界面和顶级 GUI 界面之间进行通信
- python - 如何从 Scrapy 结果中获取字典
- android - 如何将虚拟相机发送到 Ubuntu 中的 Genymotion 或 Android Studio Emulator?
- javascript - 无法使用 typescript/javascript 遍历 JSON
- kubernetes - metrics-server 在部署期间没有已知 pod 错误的指标