summarize翻译


...

DAX 提供了丰富的函数集,其中一些函数的功能存在重叠。在众多函数中,有两个主要的分组函数:SUMMARIZE 和 GROUPBY。除了这两个函数,还有 SUMMARIZECOLUMNS 和 GROUPCROSSAPPLY 等其他函数,它们执行类似的操作。本文将重点讨论 SUMMARIZE 和 GROUPBY 的使用及区别。

简而言之,SUMMARIZE 用于按模型列和查询列进行分组,而 GROUPBY 则可以按模型列或本地列进行分组。需要注意的是,这两个函数在特定情况下都可能被使用。由于 SUMMARIZE 使用聚类技术,其结果可能出乎意料且性能较差。在选择函数时需谨慎。

下面我们将详细说明这些函数的工作原理。

一、SUMMARIZE 函数介绍

SUMMARIZE 执行两个操作:按本地列分组和添加新的本地列。这个函数有一些特定的行为和限制,特别是当用于计算新的本地列时。虽然在使用简单示例时,SUMMARIZE 表现良好,但当复杂性增加时,其行为可能变得难以预测。

例如,下面的代码使用 SUMMARIZE 扫描销售额,按产品品牌分组,并按品牌生成销售额:

EVALUATE

SUMMARIZE (

Sales,

'Product'[Brand],

"Sales Amount", [Sales Amount]

这个查询将销售额按产品品牌分组,并计算每个品牌的总销售额。由于 SUMMARIZE 的聚类特性,它在处理复杂度量时可能会遇到问题。聚类是一种特殊的计算技术,虽然强大,但可能导致意想不到的结果和较差的性能。

二、GROUPBY 函数介绍

相比之下,GROUPBY 是按列对表进行分组的另一种方法。与 SUMMARIZE 不同,GROUPBY 的行为更加直接和可预测。它还可以在结果中添加新列,但需要使用 CURRENTGROUP 特殊函数来计算被分组表中列的聚合。

例如,下面的代码使用 GROUPBY 扫描销售表并按产品品牌分组:

EVALUATE

GROUPBY (

Sales,

'Product'[Brand],

"Sales Amount", SUMX (CURRENTGROUP (), Sales[Quantity] Sales[Net Price])

这个查询将销售表按产品品牌分组,并计算每个品牌的总销售额。由于 GROUPBY 不使用聚类,因此在处理大型数据集时通常具有更好的性能。它也有一个局限性,即迭代 CURRENTGROUP 时的表达式不能涉及上下文转换。

三、选择正确的函数

正如您所看到的,当需要按模型中的列分组时,SUMMARIZE 可以发挥很好的作用。由于它使用聚类,其结果大多出人意料。相比之下,GROUPBY 在不使用聚类的情况下对表进行分组,但总是将表具体化。在选择函数时,开发者需要根据具体需求权衡聚类与非聚类的优劣。

通常,明智的做法是将 SUMMARIZE、ADDCOLUMNS 和 GROUPBY 混合使用,以获得最佳性能和正确结果。例如,可以先使用 ADDCOLUMNS 添加新列,然后使用 SUMMARIZE 或 GROUPBY 进行分组。这样可以在不依赖聚类的情况下获得更好的性能和更可预测的结果。

DAX 开发人员需要了解每个函数的特性和限制,以便在开发过程中选择合适的函数。通过合理使用 SUMMARIZE 和 GROUPBY 等函数,可以有效地处理和分析大量数据,从而获得有价值的见解和洞察力。 一串数字信息解读

```

(0.875900, 'EUR', 1379600, 3000000, 3000000, 1, 1449, 999999, 590077, 43410.000000, 43406.000000, 0, 322800)

```

这段数字代码似乎是一组交易或记录的汇总数据,包含了货币类型、数量、总金额等信息,但具体含义需要结合上下文才能准确解读。

尽管这两个查询在我们的示例模型上运行得很快,但在拥有数千万行数据的实际案例中可能会显得非常沉重和缓慢。

优化查询方式:

采用GROUPBY进行数据整合可能更加高效。例如,通过EVALUATE函数进行数据评估和分组。

优化实例:

我们可以使用ADDCOLUMNS和SUMMARIZE函数来先对数据进行初步的分组和汇总,然后再进行进一步的分组和计算。比如,按照销售额的数量进行分组,并添加新的列来标识交易规模(大或小),最后再根据这些分组进行求和计算。

DAX查询解析:

第一个DAX查询是按照数量对销售额进行分组,并计算每个分组的总金额。第二个查询则是检索销售中不同数量的值。大部分的计算工作已经被下放到存储引擎中,因此在大型数据库中,最后的DAX查询也会非常迅速。

深入理解DAX的重要性

对于学习DAX的人来说,了解函数的细节、实现方式和预期用法是非常重要的。我们探讨了GROUPBY和SUMMARIZE之间的区别。DAX还有许多隐藏的细节值得去发掘。

选择合适函数的重要性:

使用错误的函数可能会导致意想不到的结果或者查询效率低下。对DAX了解得越多,编写的代码就会越优秀。

学习资源推荐

如果你想要深入学习微软Power BI,我们推荐你试听学习网易云课堂的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊),获取更多关于微软Power BI、PowerPivot的文章和资讯。

关注我们:

扫描下方的二维码关注“Power Pivot工坊”,获取更多关于微软Power BI的相关文章、资讯和教程。也欢迎你分享给你的小伙伴们!