在PowerBI上设置可视页面时,遇到了一个奇怪的问题要解决。我正在尝试计算表A中带有它们的日期(日期)的togheter的某些值的平均值。
更准确地说,tableA具有日期字段和数字特征(功能),并且同一日期可能有更多值。此外,数据字段指向公共日历表(calendarTable)中的另一个数据字段。我想计算“功能”的平均值(例如,每日平均值)。
为实现这一点,我尝试计算出一个新的度量,如下所示:
Average = CALCULATE(
AVERAGE('tableA'[feature]),
USERELATIONSHIP('tableA'[date], 'calendarTable'[date]),
GROUPBY(date, 'calendarTable'[date])
)
我得到的是“累计”平均值而不是每日平均值。换句话说,对于每个日期,要平均的一组值都会增加,包括先前的值。
我也尝试过在SQL中成功执行计算(在DAX中,因为我使用了计算列,所以无需引用tableB):
SELECT
CAST(a.Date AS Date) AS Dates,
AVG(DATEDIFF(MINUTE, b.Date, a.Date)) AS AVG_DURATION
FROM
tableB AS b
INNER JOIN
tableA AS a
ON
a.ID = b.ID
GROUP BY
CAST(a.Date AS Date)
ORDER BY
Dates ASC;
有人知道如何在DAX中获得与SQL相同的结果吗?我已经尝试对日期应用一些过滤器,但是没有运气。
谢谢。
答案 0 :(得分:1)
尽管您的问题有些困惑,但以下说明可以帮助您达到要求。
如果我理解正确,那么您正在寻找“功能”列的每日AVEGARE。您可以使用带有
group_by_date =
GROUPBY (
your_table_name,
your_table_name[date_column_name].[Date],
"Average Feature", AVERAGEX(CURRENTGROUP(), your_table_name[feature])
)
现在,如果您希望DAX在每行中计算相同(但多余)的结果,则可以使用以下代码-
date_wise_average =
VAR current_row_date = MIN(your_table_name[date_column_name].[Date])
RETURN
CALCULATE(
AVERAGE(your_table_name[feature]),
FILTER(
ALL(your_table_name),
your_table_name[date_column_name].[Date] = current_row_date
)
)