Power Query导入Power BI:高效添加商品下一次订单日期列
需求:在Power Query中高效添加商品下一次下单日期列
背景说明
原本尝试通过Power Query导入数据到Power BI实现需求,后来发现用DAX会更简单。感谢针对我最初指定的Power Query的解答。
需求描述
需要在Power Query导入Power BI的过程中添加一列,显示每个订单对应的下一次该商品的下单日期,以此判断该时间点是否已有复购计划。
示例数据
订单表:
| 商品(Item) | 下单日期(OrderDate) |
|---|---|
| Red | 1/1/2024 |
| Blue | 1/1/2024 |
| Yellow | 1/1/2024 |
| Red | 2/1/2024 |
| Yellow | 2/1/2024 |
| Red | 3/1/2024 |
| Yellow | 3/1/2024 |
期望结果
需展示每个订单对应的下一次下单日期,关联条件为商品相同且下一次订单日期晚于当前行日期:
| 商品(Item) | 下单日期(OrderDate) | 下一次下单日期(Next Order Date) |
|---|---|---|
| Red | 1/1/2024 | 2/1/2024 |
| Blue | 1/1/2024 | null |
| Yellow | 1/1/2024 | 2/1/2024 |
| Red | 2/1/2024 | 3/1/2024 |
| Yellow | 2/1/2024 | 3/1/2024 |
| Red | 3/1/2024 | null |
| Yellow | 3/1/2024 | null |
现有方案问题
曾通过合并查询+条件列实现该需求,但这种方式会生成大量冗余行,不适用于大数据集。
目标实现方式
希望使用包含Table.SelectRows和Table.Group的列公式来实现,关联商品且筛选出晚于当前订单日期的最早日期,同时需要高效传递到MySQL数据库。
对应MySQL参考语句
select a.item ,a.orderdate ,min(nextorder.orderdate) as NextOrderDate from orders a left join orders as NextOrder on a.item=NextOrder.item and NextOrder.orderdate>a.orderdate group by a.item ,a.orderdate
内容的提问来源于stack exchange,提问作者ArbyWon
相关产品推荐
相关产品推荐

