分组总和的平均值

Posted

技术标签:

【中文标题】分组总和的平均值【英文标题】:Average of Grouped Sum 【发布时间】:2018-11-29 18:14:12 【问题描述】:

我希望创建一个度量,该度量取多个总和的平均值,按 ID 分组。例如,如果您有一个客户数据库,每个客户都购买了各种不同的东西,并且您想找到客户花费的平均金额,这些客户按客户分组的所有购买总和,然后对结果进行平均。

我考虑过按表分组,但如果我这样做,过滤器将无法正确应用于结果(除非有办法在 Power BI 中创建两者之间的关系,但我还没有找到该功能)。

有没有办法创建这个度量?

编辑:对表格和目标的更简洁解释:

输入表

CustomerID | Total Transaction Amount | Payment Type
-----------|--------------------------|-------------
1          | 10.00                    | Card
1          |  5.00                    | Cash
2          |  5.00                    | Cash

输出值

平均客户支出:10.00 (客户 1 总共花了 15 总和 10 + 5,客户 2 总共花了 5)

交易类型下的用户点击现金过滤器: 平均客户支出更新至:5.00 (客户 1 总共花了 5 现金,客户 2 总共花了 5 现金)

【问题讨论】:

我确信有办法,但如果没有实际的例子就很难回答。请创建一个mcve。 我不知道如何为 PowerBI 创建一个可靠的代码示例,因为我主要使用拖放工具....我在工具中编写代码所做的最多的是修改现有代码一个快速的措施,没有一个快速措施能满足我的需要。我会试着用文字写一个更简洁的例子。 我真的不需要代码示例。我想要一个输入数据的基本示例以及您希望输出的内容。写出一个简化表,其中包含您提到的列和足够的行来捕捉您所追求的想法,然后是一个输出表,该表演示应该如何对该表进行分组和平均。基本上,我想要一些具体的东西。 更新为包含一个 html sn-p,其中包含一个输入表和基于用户交互的预期输出 【参考方案1】:

我建议按CustomerID 总结您的Transactions 表分组,然后对该表取平均值,如下所示:

AverageCustomerSpend =
    AVERAGEX(
        SUMMARIZE(Transactions,
            Transactions[CustomerID],
            "Total Spent", SUM(Transactions[Amount])),
        [Total Spent])

该语法表示我们正在汇总CustomerID 上的Transaction 表分组并定义一个新列[Total Spent],该列由与该CustomerID 对应的所有金额的总和定义。然后将该表放入 AVERAGEX 函数中,该函数遍历我们刚刚创建的表中的每一行并平均 [Total Spent] 列。

【讨论】:

这个汇总功能很棒,它可以直接查询事件,看起来很有用,谢谢!

以上是关于分组总和的平均值的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 0813. 最大平均值和的分组

LeetCode 0813. 最大平均值和的分组

813. 最大平均值和的分组(Python)

MySQL 聚合函数 和 分组查询(初级)

MySQL 聚合函数 和 分组查询(初级)

MySQL 聚合函数 和 分组查询(初级)