首页 > 解决方案 > 在 Tableau 中按第一个值规范化系列

问题描述

我想通过第一个值对 Tableau 中的数据系列进行标准化。

如果我的输入表是:

日期 | 金额
1/1 $100
1/2 $150
1/3 $250

我想创建(并绘制)标准化值:

日期 | 数量标准
1/1 1
1/2 1.5
1/3 2.5

在 SQL 中,这将是

SELECT date, amount / ( SELECT amount 
                        FROM table 
                        WHERE date = ( SELECT MIN(date) FROM table ) ) AS amount_norm
FROM table

理想情况下,amount_norm应该随着用户更改 Tableau 仪表板筛选器中的选定时间间隔而更新。

看起来很简单,但我对 Tableau 语法完全不熟悉。我试过玩,FIRST() = 0但真的不知道我在做什么。

我发现了一个类似的问题,但这并没有让我到达我想要的地方。

任何帮助将不胜感激!

标签: sqltime-seriestableau-apidivisionnormalize

解决方案


要匹配 SQL 代码逻辑:

    SUM([Amount])
    /
   SUM({FIXED : SUM(IF [Date] = {FIXED : MIN([Date])} THEN ([Amount]) END)})

如果您希望它遵守工作簿/仪表板中的过滤器,您可以在冒号之前添加要过滤的维度,如下所示:

    SUM([Amount])
    /
   SUM({FIXED [filter dimension] : SUM(IF [Date] = {FIXED : MIN([Date])} THEN ([Amount]) END)})

要为固定 LOD 表达式添加更多条件,您可以添加一个逗号,然后添加另一个维度。


推荐阅读