【问题标题】:Tableau Filter on field which contains MAX of another fieldTableau 筛选包含另一个字段的 MAX 的字段
【发布时间】:2019-12-18 06:47:40
【问题描述】:

我在 Tableau 中有一个表格,其中包含足球队、他们的最佳射手以及这些球员的进球数。我想过滤表格以显示拥有进球最多球员的球队。

例如,如果我的桌子上有 A 队和 B 队,而 B 队有每个球员(在所有球队中)进球最多的球员,那么我希望过滤器只包括 B 队(但显示 B 队中的每个球员)。

【问题讨论】:

  • 您的数据库结构如何?您是从单个表还是不同表中获取全部数据?
  • 一切都在一个表中,但如果它能让事情变得更容易,可以更改它

标签: tableau-api


【解决方案1】:

这是一个很好的顶级过滤器用例。

  1. 将团队放在过滤器架子上。
  2. 定义过滤器时,选择顶部选项卡。
  3. 按字段、前 1 个、进球数和最大值选择

这会告诉 Tableau 确定每个团队的 [目标数量] 字段的最大值,然后过滤以仅包含具有最高值的团队。

(请注意,此方法假定每个玩家有一个数据行,显示玩家实现的目标总数。如果您的数据结构不同,例如每个玩家每场比赛一个数据行,那么您可能需要修改稍微的方法,也许也使用 LOD 计算)

在 SQL 中,这通常会导致 HAVING 子句。

唯一的缺点是如果两支球队并列榜首,我相信在这种情况下你只会看到其中一支。

如果这种情况对您很重要,您可以使用表格计算来获得类似的效果,根据球队的最大 [进球数] 对球队进行排名,为快速表格计算设置您选择的平局规则,然后使用过滤器架上的计算仅显示排名最高的团队。如果他们并列第一,这将显示多个团队。

表格计算方法更灵活,但效率可能较低,尤其是对于大型数据集,因为数据是从数据源提取到 Tableau 进行排名计算,然后只显示其中的一部分。 (表格计算在处理管道中来得很晚)顶部过滤器方法在数据源处执行计算和过滤器,并且只将过滤后的结果发送回 Tableau 客户端。

【讨论】:

  • 欢迎您。你可以为这个答案投票,因为你觉得它很有帮助
  • 我愿意,但我在 SO 上没有足够的声誉。当我得到足够的时候,我会回来支持它
猜你喜欢
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-12
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多