Power BI导入模式下创建度量值筛选最大日期对应数据行
Power BI 导入模式筛选最大日期对应记录实现方案
导入模式下有两种常用实现方案,可根据你的使用场景选择:
方案1:DAX动态计算方案(适合需要动态取数的场景)
如果需要随着数据刷新动态计算全局最大日期、无需修改数据加载逻辑,可直接用DAX实现:
- 若要生成独立的最新记录表(可直接关联device表做可视化),新建计算表,输入以下DAX代码:
最新metric记录 = VAR 全局最大日期 = MAX('metric'[createddate]) RETURN FILTER( 'metric', 'metric'[createddate] = 全局最大日期 )
生成的计算表会自动继承原有和device表的一对多关联关系,直接调用即可。
2. 若无需新建表,仅需在现有度量值中筛选最大日期的数据,直接用CALCULATE套筛选逻辑即可,示例:最大日期metric1总和 = CALCULATE(SUM('metric'[metric1]), 'metric'[createddate] = MAX('metric'[createddate]))
补充:如果需求是取每个设备各自的最新上报记录,只需调整FILTER的筛选条件:
各设备最新记录 = FILTER( 'metric', 'metric'[createddate] = CALCULATE(MAX('metric'[createddate]), ALLEXCEPT('metric', 'metric'[Device_ID])) )
方案2:Power Query预处理方案(适合大数据量、性能优先的场景)
如果不需要动态调整筛选逻辑,可在数据加载阶段就过滤掉旧数据,减少模型占用空间、提升查询性能:
- 进入Power Query编辑器,选中
metric表 - 新增自定义步骤,替换公式中的
上一步骤名为你前一步操作的步骤名称:= Table.SelectRows(上一步骤名, each [createddate] = List.Max(上一步骤名[createddate])) - 保存更改并应用加载即可,后续数据刷新时会自动只保留最大日期的记录。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

