平均值除以每个项目的计数
average divided by the count per project
我有三个表 time、SectorProject、product Project。
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 服务器,它将类似于以下代码:
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 而不是 .
如果你想把它放在计算列中,那么你必须用另一个 CALCULATE 把它包起来。
SumOverPartition:=
CALCUALTE
CALCULATE (
SUM ( T[Sales] ),
REMOVEFILTERS ( 'T' ),
VALUES ( T[Category] )
)
)
我有三个表 time、SectorProject、product Project。
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 服务器,它将类似于以下代码:
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 而不是
如果你想把它放在计算列中,那么你必须用另一个 CALCULATE 把它包起来。
SumOverPartition:=
CALCUALTE
CALCULATE (
SUM ( T[Sales] ),
REMOVEFILTERS ( 'T' ),
VALUES ( T[Category] )
)
)