【问题标题】:Annualize data - Tableau年化数据 - Tableau
【发布时间】:2014-07-08 05:40:30
【问题描述】:

我正在尝试对 tableau 中的数据进行年化处理,但在计算字段中出现错误。 “不能将聚合和非聚合参数混合到函数中”

我的公式是

 sum(profit)/month(selected date) *12

如何获取当前月份的整数?这似乎是问题所在,它也尝试聚合月份。

谢谢。

【问题讨论】:

    标签: tableau-api


    【解决方案1】:

    简短的回答:将对月份的调用包装在对 min() 的调用中——如果您在可视化上将 MONTH([selected date]) 作为维度,则效果很好。

    Tableau 中有三种类型的计算字段:

    • 作用于单个数据行的行级计算。它们可以读取同一行中其他字段的值,并每行返回一个值。
    • 对数据行的分区或块起作用的聚合计算。他们可以使用聚合函数(如 SUM() 或 MIN())引用聚合整个分区中某个字段的值的结果。
    • 作用于整个聚合结果表的表计算。

    你不能混搭。计算字段中的所有内容都必须在一个级别或另一个级别 - 所有引用的字段都必须使用聚合函数(对于聚合计算字段),或者没有引用的字段必须使用聚合函数(对于数据行级别的计算字段)。

    因此您看到了错误消息。

    有时您知道基于可视化的分区中某个字段的所有值都是相同的,因此聚合函数似乎没有必要。但 Tableau 仍然要求您明确说明如何将一组值转换为单个值,因为即使可视化分区不同,也必须定义计算。在这些情况下,您可以使用 min()、max()、avg() 或 attr(),因为它们都为相同值的列表返回相同的值。

    前两种类型通常在服务器上执行(即它们由 Tableau 实现,发出 SQL 以发送到数据库服务器)。表计算由 Tableau 在客户端站点上执行,以对来自数据库服务器的结果进行后处理。

    表格计算是最复杂的类型,但非常有用。解释它们是另一天的帖子。

    【讨论】:

    • 谢谢亚历克斯。这是一个很好的提醒。我拿了你的第一点。由于计算是每行完成的。在进行聚合之前,我做了一个计算字段并按行对数据进行年度化。
    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 2016-01-22
    相关资源
    最近更新 更多