powerbi - 使用 DAX 在 Powerbi 中计算平均速度
问题描述
我有来自 2 个摄像头的数据:车号、摄像头、日期时间。相机 A 是第一台,B 是第二台相机。
我需要计算通过两个摄像头的汽车的平均速度,并且通过时间至少为 5 分钟且不超过 30 分钟。摄像机之间的距离为 6 公里。
我只计算了同一辆车最近的交叉路口时间。我找不到最近的 A 交叉时间的相机 B 交叉时间。
Diff_time =
VAR temp =
TOPN (
1;
FILTER (
'TEST2';
'TEST2'[license_plate] = EARLIER ( 'TEST2'[license_plate])
&& 'TEST2'[Date_time] < EARLIER ( 'TEST2'[Date_time] )
);
'TEST2'[Date_time]; DESC
)
RETURN
DATEDIFF ( MINX ( temp; 'TEST2'[Date_time] ); 'TEST2'[Date_time]; MINUTE )
[license_plate] 是车牌号。
解决方案
当你有一个看起来像这样的表时:
然后像这样的 DAX 表达式将创建计算的列 [MIN_diff_Minutes_with_Camera A]。对于带有摄像头 B 的行,它返回最小的差异(以分钟为单位),摄像头 A 的 DT_stamp 小于该行中的 DT,指的是同一辆车,介于 5 到 30 分钟之间。对于带有相机 A 的行,它返回一个空白。
MIN_diff_Minutes_with_Camera A =
VAR DT_camera_A =
CALCULATE (
MAX ( TEST2[DT_Stamp] ),
ALLEXCEPT ( TEST2, TEST2[Car] ),
'TEST2'[Camera] = "A",
'TEST2'[DT_Stamp] < EARLIER ( TEST2[DT_Stamp] )
)
VAR Time_Diff_in_Minutes =
DATEDIFF ( DT_camera_A, 'TEST2'[DT_Stamp], MINUTE )
RETURN
IF (
'TEST2'[Camera] = "B"
&& TIme_Diff_in_Minutes >= 5
&& Time_Diff_in_Minutes <= 30,
Time_Diff_in_Minutes, --For avg speed in km/h use: 6*(Time_Diff_in_Minutes/60)
BLANK ()
)
推荐阅读
- python - 错误:使用 pymongo (pandas) 将 CSV 文件导入 mongoDB
- javascript - JavaScript-TypeError:无法添加属性 __id,对象不可扩展
- css - 悬停的背景颜色变化打破了模拟+显示
- javascript - Javascript - 将 compose 与 reduce 一起使用
- javascript - 是什么促使 chrome devtools 寻找源图
- guice - 如何调试 Guice 类/方法拦截器?
- asp.net-core - 检查表中的多个条目 - ASP.NET Core 3.1 和 EFCore
- apache-calcite - 在哪里设置方解石弹性搜索用户名/密码?
- django - 在 Django 中,html 模板中的 for 循环无法正常工作
- python - 在 Pandas DataFrame 中,如何根据字符串前缀将列表转换为多个列表并保持顺序?[Python]