Tableau - 带有聚合的 IF 语句
Tableau - IF Statement with aggregation
我需要在计算字段中的 IF 语句下进行聚合
如果城市与用户选择的城市相同(参数PAR_SELECT_CITY
);
如果条件1成立,则SUM(Number of records) - [PAR_SELECT_QTY]
[PAR_SELECT_QTY]
是用户选择从总量中扣除的参数
如果条件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 所需的值。
我需要在计算字段中的 IF 语句下进行聚合
如果城市与用户选择的城市相同(参数
PAR_SELECT_CITY
);如果条件1成立,则
SUM(Number of records) - [PAR_SELECT_QTY]
[PAR_SELECT_QTY]
是用户选择从总量中扣除的参数如果条件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 所需的值。