合并查询,一个严重的效率问题以及简单的解决办法 | PQ优化实战

- 1 -

最近,发现Power Query里的合并查询功能,存在一个很严重的效率问题!

比如,希望在“订单表”里增加一列,对“订单明细表”里的数量进行汇总,即在“订单表”里合并查询“订单明细表”,展开合并结果时对“订单明细表”的“数量”进行聚合(求和):

此时,如果你的数据量较大(本测试案例订单4k+,订单明细9w+行,其实并不算太大),你会发现,这个聚合的效率会非常非常低,刷新数据时感觉就是跑不动:

- 2 -

对于这个效率问题,虽然影响比较严重,但实际处理起来其实比较简单,且有多种方法。

方法1:合并展开明细后再分组求和

该方法操作最简单,即合并查询后,直接展开合并的“订单明细”表,不要选择聚合功能:

展开得到明细后,再进行分组求和:

方法2:订单明细分组求和后再进行合并查询

先对订单明细(按需要复制一份)进行分组求和:

然后直接对分组求和后的订单明细进行合并查询:

方法3:在合并查询时对订单明细进行分组

这个方法的原理其实跟方法2基本相同,只是直接在合并查询步骤里直接修改公式对要原合并查询的对象“订单明细”改为经过分组的“订单明细”:

- 3 -

以上3种方法完成后,进行了一个简单的测试对比:

总体来说,3者在效率上并没有明显的差别。

这里,也再次体现了以下两点:

1、合并查询本身的效率并不低;

2、分组功能的效率非常高!

这两个知识也是Power Query非常重要的点,大家一定要掌握好。再次附上相关视频:

1、合并查询入门

2、合并查询进阶

3、分组功能入门

4、分组功能进阶

(0)

相关推荐