在Power BI/Query中,我们可以使用运算符来避免在GROUP BY之前对连接结果进行材料化。以下是一个示例代码:
let
// 第一个查询,用于获取数据表1
Source1 = ...,
// 第二个查询,用于获取数据表2
Source2 = ...,
// 连接查询
Join = Table.NestedJoin(Source1, {"KeyColumn"}, Source2, {"KeyColumn"}, "JoinedTable"),
// 展开连接结果
ExpandedTable = Table.ExpandTableColumn(Join, "JoinedTable", {"Column1", "Column2"}, {"Column1", "Column2"}),
// 分组并聚合数据
GroupedTable = Table.Group(ExpandedTable, {"Column1"}, {{"SumColumn2", each List.Sum([Column2]), type number}})
in
GroupedTable
在上面的代码中,我们首先通过两个查询分别获取数据表1和数据表2,然后使用Table.NestedJoin将它们连接起来。接下来,我们使用Table.ExpandTableColumn展开连接结果,以便我们可以对连接后的结果进行分组和聚合操作。最后,使用Table.Group对数据进行分组,并使用List.Sum对Column2进行求和。
这种方法避免了在GROUP BY之前对连接结果进行材料化,因此可以提高查询的性能。