我的链接过滤器不起作用
您已创建了一个关联过滤器,例如,如果仪表板同时包含“状态”和“城市”过滤器,则“城市”过滤器只显示由“状态”过滤器选定的州的cities。然而
- 当您应用关联过滤器时,您的卡片显示“无结果”,
- 您的关联过滤器似乎没有任何效果,或
- 您的关联过滤器小部件未显示过滤值的下拉列表。
如果您遇到常规过滤器小部件的问题,请参阅本指南。为了修复关联过滤器的问题,您需要清楚地了解它们的工作原理
连接的仪表板卡片使用SQL变量吗?
根本原因:原生/SQL问题必须有一个字段过滤器变量才能进行关联。常规SQL变量无法工作。
采取的步骤:
- 更新卡片的查询,将常规变量更改为字段过滤器变量。
参见关联过滤器的限制
您理解关联过滤器的方向性吗?
根本原因:关联过滤器是Metabase的更复杂功能之一,许多问题源于对其操作的不理解。
采取的步骤:检查您是否理解以下要点,并且您的关联过滤器是根据这些要点设置的。
-
过滤器不是特定问题的组成部分。相反,过滤器被添加到仪表板中,其值用于在问题中填充变量。
-
为了使Metabase显示可能的过滤值下拉列表,它必须知道该列对应于一个类别。如果问题是通过笔记本编辑器从表创建的,则此操作会自动发生,因为Metabase了解表和列的同步信息。
-
另一方面,如果包含变量的问题是用SQL编写的,那么问题的作者必须已选择“字段过滤器”。此外,引用的字段必须设置为表元数据中的类别,以便Metabase显示值下拉列表。
过滤器是否按正确方向链接?
根本原因:最常见的原因是过滤器已按错误方向链接。如果您想由过滤器A的设置限制过滤器B显示的值,则必须更改过滤器B的设置,而不是过滤器A——即下游过滤器有设置,而不是上游过滤器。
采取的步骤
- 删除现有的链接并创建一个相反方向的新的链接。
是否有一些行满足完整的过滤器条件?
根本原因:在关联过滤器中没有任何行满足所有条件。以城市和州的示例继续,如果您手动输入不在所选州的城市名称,则没有任何记录将满足这两个条件。
采取的步骤
- 创建一个只使用第一个过滤器的查询,并检查它是否产生一些行。(如果它不产生,添加第二个过滤器也不会出现任何行。)
- 创建一个您认为应该产生与未产生数据的关联过滤器设置组合相同结果的查询。如果它产生您期望的结果,请检查是否有拼写错误,并且您是否使用了正确的连接类型。
所有通过第一个测试的行是否也通过第二个测试?
根本原因:在某些情况下,满足第一个过滤器条件的所有行也满足第二个过滤器的条件,因此第二个过滤器没有效果。
采取的步骤
- 创建一个直接包含第一个过滤条件的问题(即在问题中,而不是使用变量),然后添加第二个过滤条件的条件。如果结果集没有变化,问题在于逻辑而不是过滤条件。
链接的过滤小部件是否显示过滤值的下拉列表?
根本原因:为了使链接的过滤小部件以下拉列表的形式显示正确的值子集,必须设置显式的外键定义——仅仅通过链接过滤条件本身并不能告诉Metabase它们之间的关系。
采取的步骤
- 请检查Metabase数据库表元数据中是否包含外键关系。
阅读其他Metabase版本的文档。