不同粒度的 DAX 平均值
DAX Average at different grain
好的,高度简化了 table 三列,订单号、产品号和数量...
Order | Product | Qty
1 | A | 10
1 | B | 20
2 | C | 30
我想计算平均数量,所以..这是在 "default grain":
平均数量 = 60/3 = 20
很简单,但是我还想删除产品:
Order | Qty
1 | 30
2 | 30
现在 Qty 应该重新聚合 [就像使用 sum()] 一样,现在我希望 AvgQty return 这些 new[=34= 的平均值] 行...
平均数量 = 60/2 = 30
如果尝试像这样明确地按顺序分组来做到这一点:
measure :=
IF (
ISFILTERED ( 'Table'[Product] ),
AVERAGEX (
SUMMARIZE (
'Table',
'Table'[Order],
'Table'[Product],
"SumQty", SUM ( 'Table'[Qty] )
),
[SumQty]
),
AVERAGEX (
SUMMARIZE (
'Table',
'Table'[Order],
"SumQty", SUM ( 'Table'[Qty] ) ),
[SumQty]
)
)
由于技术上未按产品过滤该列的总计,它不太有效,因此它继续显示不正确的总计...
我不确定如何覆盖它..?
我的实际计算不只是一个简单的平均值,但我面临的主要问题是确保我能获得新谷物的 'recalculation' 数量。如果我能做到这一点,我可以解决我自己的问题.. 解决方案很可能也是将 table 加载到模型中的 grain 订单!!! ;)
前几天也在想,恐怕没有办法解决,原因如下:
- DAX 中没有函数可以 return 整个 table 被计算为您的行
- 没有函数可以告诉您那里汇总了什么
- 对于单行,您可以找出使用复杂的级联 ISFILTERED 函数过滤的内容,但这既不可行也不可靠
- 最大的问题:当您处于总计或小计级别时,无法找出明细行使用的是什么 none 现有函数,如 ISFILTERED、HASONEVALUE、等会起作用
所以对于 DAX,我认为目前无法解决这个问题
如果您使用 MDX 来查询您的模型(例如 Pivot Table),您可以创建一个 MDX 度量,它使用 AXIS()-函数 return 所使用的集合在 rows/columns 上并且它在 COUNT() 函数中
好的,高度简化了 table 三列,订单号、产品号和数量...
Order | Product | Qty
1 | A | 10
1 | B | 20
2 | C | 30
我想计算平均数量,所以..这是在 "default grain":
平均数量 = 60/3 = 20
很简单,但是我还想删除产品:
Order | Qty
1 | 30
2 | 30
现在 Qty 应该重新聚合 [就像使用 sum()] 一样,现在我希望 AvgQty return 这些 new[=34= 的平均值] 行...
平均数量 = 60/2 = 30
如果尝试像这样明确地按顺序分组来做到这一点:
measure :=
IF (
ISFILTERED ( 'Table'[Product] ),
AVERAGEX (
SUMMARIZE (
'Table',
'Table'[Order],
'Table'[Product],
"SumQty", SUM ( 'Table'[Qty] )
),
[SumQty]
),
AVERAGEX (
SUMMARIZE (
'Table',
'Table'[Order],
"SumQty", SUM ( 'Table'[Qty] ) ),
[SumQty]
)
)
由于技术上未按产品过滤该列的总计,它不太有效,因此它继续显示不正确的总计...
我不确定如何覆盖它..?
我的实际计算不只是一个简单的平均值,但我面临的主要问题是确保我能获得新谷物的 'recalculation' 数量。如果我能做到这一点,我可以解决我自己的问题.. 解决方案很可能也是将 table 加载到模型中的 grain 订单!!! ;)
前几天也在想,恐怕没有办法解决,原因如下:
- DAX 中没有函数可以 return 整个 table 被计算为您的行
- 没有函数可以告诉您那里汇总了什么
- 对于单行,您可以找出使用复杂的级联 ISFILTERED 函数过滤的内容,但这既不可行也不可靠
- 最大的问题:当您处于总计或小计级别时,无法找出明细行使用的是什么 none 现有函数,如 ISFILTERED、HASONEVALUE、等会起作用
所以对于 DAX,我认为目前无法解决这个问题
如果您使用 MDX 来查询您的模型(例如 Pivot Table),您可以创建一个 MDX 度量,它使用 AXIS()-函数 return 所使用的集合在 rows/columns 上并且它在 COUNT() 函数中