我的联动筛选器不起作用

您已创建了一个 联动筛选器,例如,如果仪表板同时包含“州”和“城市”筛选器,则“城市”筛选器仅显示由“州”筛选器选择的州内的城市。但是

  • 当您应用联动筛选器时,您的卡片显示“无结果”,
  • 您的联动筛选器似乎不起作用,或者
  • 您的联动筛选器小部件不显示已筛选值的下拉列表。

如果您的常规 筛选器小部件 有问题,请参阅 本指南。为了解决联动筛选器的问题,您需要清楚地了解它们的工作原理

连接的仪表板卡片是否使用 SQL 变量?

根本原因:原生/SQL 问题必须具有 字段筛选器 变量才能进行链接。常规 SQL 变量不起作用。

采取步骤:

  1. 更新卡片的查询,将常规变量更改为 字段筛选器 变量。

请参阅 联动筛选器的限制

您是否理解联动筛选器的方向性?

根本原因: 联动筛选器是 Metabase 较为复杂的功能之一,许多问题源于对其操作的误解。

采取步骤: 检查您是否理解以下几点,并确保您的联动筛选器在设置时考虑了这些要点。

  1. 筛选器不是特定问题的一部分。相反,筛选器被添加到仪表板,其值用于填充问题中的变量。

  2. 为了让 Metabase 显示可能的筛选器值的下拉列表,它必须知道该列对应于一个类别。如果问题是通过 Notebook 编辑器从表创建的,则会自动发生这种情况,因为 Metabase 通过同步了解表和列的信息。

  3. 另一方面,如果包含变量的问题是用 SQL 编写的,则问题的作者必须选择“字段筛选器”。此外,引用的字段必须在表元数据中设置为类别,Metabase 才能显示值下拉列表。

筛选器是否以正确的方向链接?

根本原因: 最常见的原因是筛选器以错误的方向链接。如果您希望筛选器 B 显示的值受到筛选器 A 设置的限制,则必须更改筛选器 B 的设置,而不是筛选器 A 的设置——即,下游筛选器具有设置,而不是上游筛选器。

采取步骤

  1. 删除现有链接,并以相反的方向创建一个新链接。

是否有某些行实际满足完整的筛选器条件?

根本原因: 没有满足联动筛选器中所有条件的行。继续以城市和州为例,如果您手动输入一个不在所选州内的城市名称,则没有记录会满足这两个条件。

采取步骤

  1. 创建一个仅使用第一个筛选器的问题,并检查它是否生成一些行。(如果它不生成任何行,则添加第二个筛选器不会使任何行出现。)
  2. 创建一个您认为应该产生与未产生任何数据的联动筛选器设置组合相同结果的问题。如果它产生您期望的结果,请检查是否有打字错误以及您是否使用了 正确的连接类型

通过第一个测试的所有行也通过了第二个测试吗?

根本原因: 在某些情况下,满足第一个筛选器条件的所有行也满足第二个筛选器条件,因此第二个筛选器不起作用。

采取步骤

  1. 创建一个直接包含第一个筛选器条件的问题(即在问题中而不是使用变量),然后添加第二个筛选器的条件。如果结果集没有变化,则问题在于逻辑而不是筛选器。

联动筛选器小部件是否显示已筛选值的下拉列表?

根本原因: 为了使联动筛选器小部件将正确的值子集显示为下拉列表,必须设置显式 外键 定义——链接筛选器本身并不会告诉 Metabase 关于关系的信息。

采取步骤

  1. 检查 Metabase 的数据库表元数据是否包含外键关系。

阅读其他版本的 Metabase 文档