作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果这是一个简单的事情,但在阅读了几篇类似的帖子后,我似乎无法找到正确的答案。
我基本上想做的是复制计算一组记录的平均值的功能。
下面是一些简单的 SQL 来演示我想要达到的目的。
DECLARE @T TABLE(CountryID int, CategoryID int, ProductID int, Price float)
INSERT INTO @T VALUES
(1,20, 300, 10),
(1,20, 301, 11),
(1,20, 302, 12),
(1,20, 303, 13),
(1,30, 300, 21),
(1,30, 300, 22),
(1,30, 300, 23),
(1,30, 300, 24),
(2,20, 300, 5),
(2,20, 301, 6),
(2,20, 302, 7),
(2,20, 303, 8),
(2,30, 300, 9),
(2,30, 300, 8),
(2,30, 300, 7),
(2,30, 300, 6)
SELECT
*
, AVG(Price) OVER(PARTITION BY CountryID, CategoryID) AS AvgPerCountryCategory
FROM @t
CountryID CategoryID ProductID Price AvgPerCountryCategory
1 20 300 10 11.5
1 20 301 11 11.5
1 20 302 12 11.5
1 20 303 13 11.5
1 30 300 21 22.5
1 30 300 22 22.5
1 30 300 23 22.5
1 30 300 24 22.5
2 20 300 5 6.5
2 20 301 6 6.5
2 20 302 7 6.5
2 20 303 8 6.5
2 30 300 9 7.5
2 30 300 8 7.5
2 30 300 7 7.5
2 30 300 6 7.5
AVG(Price) OVER(PARTITION BY CountryID, CategoryID)
在DAX?
最佳答案
您可以创建一个新的计算列,如下所示:
AvgPerCountryCategory =
CALCULATE(AVERAGE('@T'[Price]),
ALLEXCEPT('@T', '@T'[CountryID], '@T'[CategoryID]))
CountryID
和
CategoryID
匹配当前行中的 ID 值。 (它删除
所有 行上下文
除了 那些。)
AvgPerCountryCategory =
CALCULATE(AVERAGE('@T'[Price]),
ALL('@T'[ProductID], '@T'[Price]))
AvgPerCountryCategory =
CALCULATE(AVERAGE('@T'[Price]),
ALL('@T'),
'@T'[CountryID] = EARLIER('@T'[CountryID]),
'@T'[CategoryID] = EARLIER('@T'[CategoryID]))
EARLIER
函数引用较早的行上下文。
关于tsql - DAX 等效于 T-SQL AVG OVER(PARTITION BY),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49322212/
我是一名优秀的程序员,十分优秀!