Tableau - 带有聚合的 IF 语句

Tableau - IF Statement with aggregation

我需要在计算字段中的 IF 语句下进行聚合

  1. 如果城市与用户选择的城市相同(参数PAR_SELECT_CITY);

  2. 如果条件1成立,则SUM(Number of records) - [PAR_SELECT_QTY]

    [PAR_SELECT_QTY]是用户选择从总量中扣除的参数

  3. 如果条件1为假,则SUM(Number of records)

    IF [City] = [PAR_SELECT_CITY] THEN
        SUM([Number of Records])-[PAR_SELECT_QTY]
    ELSE
       SUM([Number of Records])
    END
    

但是,IF Statament 不接受混合聚合和不聚合

如何解决这个问题?

正如您的错误所暗示的,问题是聚合数据和“行级”数据的混合。在 Tableau 中,理想情况下您希望行级数据包含在聚合函数中。

sum(if true then 1 end) 而不是 if true then sum(1) end

对于你的例子,你可以试试

SUM([Number of Records])
- 
AVG(IF [City] = [PAR_SELECT_CITY] THEN [PAR_SELECT_QTY] ELSE 0 END)

您的 PAR_SELECT_CITY 还需要 return 一个总数。如果 PARA_SELECT_CITY = 5(例如)并且您的数据集包含 100 行,则 AVG(PARA_SELECT_CITY) 也将为 5,而 SUM(PARA_SELECT_CITY) 将 return 500。因此 AVG应该作为一个聚合函数工作,returns 所需的值。