详细级别表达式和聚合
视图的详细级别确定视图中标记的数量。向视图中添加详细级别表达式时,Tableau 必须协调两个详细级别 — 视图中的详细级别以及表达式中的详细级别。
详细级别表达式在视图中的行为因表达式的详细级别是更粗略、更精细还是与视图中的详细级别相同而异。在此情况下,“更粗略”或“更精细”是什么意思?
详细级别表达式比视图详细级别粗略
在引用视图中的维度子集时,表达式的详细级别比视图更粗略。例如,对于包含维度“[Category]”(类别)和“[Segment]”(细分)的视图,您可能会创建仅使用以下维度之一的详细级别表达式:
{FIXED [Segment] : SUM([Sales])}
在这种情况下,表达式的详细级别比视图更粗略。表达式的值基于一个维度([Segment]),而视图则基于两个维度([Segment] 和 [Category])。
结果是,在视图中使用详细级别表达式会将导致某些值重复,也就是说,出现多次。
在将特定值与某一类别中的平均值进行比较时,重复值很有用。例如,以下计算将从平均销售总额中减去某个客户的平均销售额。
[Sales] - {FIXED [Customer Name] : AVG([Sales])}
当值重复时,更改视图中相关字段的聚合(例如,从 AVG 更改为 SUM)将不会更改聚合的结果。
详细级别表达式比视图详细级别更精细
当表达式引用视图中维度的超集时,表达式的详细级别将比视图更精细。当您在视图中使用此类表达式时,Tableau 将对结果进行聚合,直至达到视图级别。例如,以下详细级别表达式引用两个维度:
{FIXED [Segment], [Category] : SUM([Sales])}
在仅具有“[Segment]”作为其详细级别的视图中使用此表达式时,必须对值进行聚合。如果将该表达式拖到功能区上,您将看到如下结果:
AVG([{FIXED [Segment]], [Category]] : SUM([Sales]])}])
Tableau 将自动分配一个聚合(此例中为平均值)。可以根据需要更改该聚合。
向视图中添加详细级别表达式
详细级别表达式在视图是聚合还是重复由表达式类型(FIXED、INCLUDE 或 EXCLUDE)以及表达式的粒度比视图粒度更粗略还是更精细确定。
INCLUDE 详细级别表达式的详细级别将与视图相同或比视图更精细。因此,值将从不会重复。
FIXED 详细级别表达式的详细级别可能比视图更精细、更粗略或与之相同。是否需要对 FIXED 详细级别的结果进行聚合取决于视图中有什么维度。
EXCLUDE 详细级别表达式始终会导致视图中出现重复值。将包括 EXCLUDE 详细级别表达式的计算放在功能区上时,Tableau 默认情况下将进行 ATTR 聚合(而不是 SUM 或 AVG)以指明表达式实际上并未在聚合,并且更改聚合将不会影响视图。
将详细级别表达式添加到视图中的功能区时,除非将这些表达式用作维度,否则会始终将它们自动封装在聚合中。因此,如果您双击功能区并键入
{FIXED[Segment], [Category] : SUM([Sales])}
然后按 Enter 提交表达式,您现在将在功能区上看到
SUM({FIXED[Segment], [Category] : SUM([Sales])})
但如果您在功能区中双击并编辑表达式,您在编辑模式下看到的将是原始表达式。
如果在创建详细级别表达式时将其封装在聚合中,那么在将包括该表达式的任何计算放在功能区上时,Tableau 将使用您指定的聚合,而不是为其分配一个聚合。如果不需要聚合(原因是表达式的详细级别比视图更粗略),当表达式位于功能区上时,您指定的聚合仍会显示,但会被忽略。