我有一个类似于以下的表格:
TAB1:
+--------+------------------+-------+-------+---------+
| SENSOR | DATATIME | CLASS | GROUP | TRAFFIC |
+--------+------------------+-------+-------+---------+
| X1 | 2011-01-01 00:00 | 0 | A | 23 |
| X1 | 2011-01-01 00:00 | 1 | B | 12 |
| X1 | 2011-01-01 00:00 | 2 | B | 22 |
| X2 | 2011-01-01 00:00 | 0 | A | 33 |
| X2 | 2011-01-01 00:00 | 2 | B | 31 |
| X2 | 2011-01-01 00:00 | 4 | C | 12 |
| Xn | 2011-01-01 00:00 | 0 | A | 41 |
| Xn | 2011-01-01 00:00 | 3 | C | 15 |
| Xn | 2011-01-01 00:00 | 2 | B | 45 |
| … | … | … | … | … |
| X1 | 2011-01-01 01:00 | 0 | A | 36 |
| X1 | 2011-01-01 01:00 | 1 | B | 32 |
| X1 | 2011-01-01 01:00 | 2 | B | 26 |
| X2 | 2011-01-01 01:00 | 0 | A | 17 |
| X2 | 2011-01-01 01:00 | 2 | B | 16 |
| X2 | 2011-01-01 01:00 | 4 | C | 40 |
| Xn | 2011-01-01 01:00 | 0 | A | 28 |
| Xn | 2011-01-01 01:00 | 3 | C | 38 |
| Xn | 2011-01-01 01:00 | 2 | B | 24 |
| … | … | … | … | … |
| | 2020-12-31 23:00 | | | |
+--------+------------------+-------+-------+---------+
我想要做的是创建一个度量,传递给一个直方图,它允许通过按以下方式聚合来计算平均流量:DATATIME & GROUP。然后,通过 DrillDown 和 DrillUp 观察小时、日、月和年的流量趋势。为此,TAB1 表将 DATATIME 与日历表建立了关系。
为此,我需要:
在SQL中,为了按年聚合流量,我写了这个查询:
select year(DATATIME) as YEAR, GROUP, sum(Avg_TRAFFIC) as Y_TRAFFIC
from (select DATATIME, GROUP, avg(TRAFFIC) as Avg_TRAFFIC
from TAB1
group by DATATIME, GROUP
) as TMP
group by year(DATATIME), GROUP
order by YEAR, GROUP
在 DAX 中,我尝试以两种不同的方式编写度量,但结果不正确。 这里我只报告A组的测量值,B组和C组的测量值相似。
尝试 1
注意:TrafficKey = CONCATENATE(TAB1[DATATIME], TAB1[GROUP])
A_Traffic =
var d1 = ADDCOLUMNS(VALUES(TAB1[TrafficKey]), "AvgHour", average(TAB1[TRAFFIC]))
return
CALCULATE(
SUMX(d1,[AvgHour]),
TAB1[GROUP]="A"
)
尝试 1
SUMX(
FILTER(TAB1, TAB1[GROUP]="A"),
AVERAGEX(
VALUES(TAB1[TrafficKey]),
TAB1[TRAFFIC])
)
我该如何解决这个问题?