关联过滤器

您可以在仪表板上关联过滤器,以便子过滤器根据父过滤器应用的值来限制其值。

例如,假设您希望一个州列的过滤器能够限制城市列过滤器可用的值,这样如果有人选择了一个州,他们将只能选择该州内的城市。要实现这一点,您可以将城市过滤器(子过滤器)关联到(父)州过滤器。

Linked filters

为关联过滤器设置表格

您只能关联连接到仪表板卡片上数据库列(非自定义列或汇总)的仪表板过滤器,因为 Metabase 需要列元数据来创建关联过滤器。Metabase 需要知道列中有哪些值,以及父过滤器和子过滤器中的列如何相互关联。

只有当过滤器连接到在表格元数据中具有明确关系的列时才能进行关联。这里的关系意味着这些列应满足以下条件:

  • 在同一个表格中。
  • 在两个不同的表格中,且在表格元数据中指定了外键关系。
  • 在两个不同的表格中,且在表格元数据中指定了与一个或多个中间表格的外键关系。

Setting up foreign key in table metadata

如果您尝试在两个未连接的列之间设置关联过滤器,Metabase 不会显示错误,但您会发现子过滤器中的值不受父过滤器限制。有关更多故障排除技巧,请参阅关联过滤器故障排除

设置关联过滤器

您可以将子过滤器关联到一个或多个父过滤器。子过滤器必须是 ID、位置或文本或类别过滤器。父过滤器可以是任何过滤器类型

要在仪表板上关联子过滤器到一个或多个父过滤器:

  1. 通过点击仪表板右上角的铅笔图标来编辑仪表板。
  2. 通过点击过滤器中的齿轮图标来编辑子过滤器。
  3. 在过滤器设置侧边栏中,切换到关联过滤器选项卡。
  4. 选择父过滤器。

Linked filters

您在关联过滤器选项卡中选择的过滤器将是父过滤器,即限制您当前正在编辑的(子)过滤器值的过滤器。

关联过滤器的限制

关联过滤器会忽略模型和问题定义的关系

关联过滤器只“知道”表格元数据中定义的关系。这个限制允许用户将过滤器连接到多个仪表板卡片(跨多个标签页)上的同一列,但这也意味着:

  • 关联过滤器无法识别模型或问题中通过连接定义的关系。
  • 关联过滤器无法使用任何底层卡片或模型中的任何过滤或连接逻辑。

例如,假设您有一个包含“州”和“城市”列的表格,并且您构建了一个模型,该模型过滤掉城市 = 旧金山的行。您基于该模型提出一个问题,并将其添加到仪表板。您向仪表板添加了“州”和“城市”过滤器,并将其关联。如果您选择州 = CA,城市过滤器可能仍然显示旧金山作为选项,即使该问题和底层模型中没有旧金山的记录,因为该过滤器只“知道”底层表格元数据(其中包括列的样本值)。

关联过滤器不适用于自定义列或汇总

Metabase 使用数据库列元数据来填充关联过滤器值,这意味着关联过滤器必须连接到数据库列。具体来说:

  • 您无法在自定义列上创建关联过滤器。

  • 原生/SQL 问题必须具有字段过滤器变量才能被关联。基本 SQL 变量未连接到数据库列,因此它们不适用于关联过滤器。

  • 您无法关联使用“自定义列表”或“来自其他模型或问题”作为值来源的过滤器。

关联过滤器故障排除

如果您发现关联过滤器未能如期工作,请确保您的表格关系已设置为支持关联过滤器。有关更多故障排除信息,请参阅关联过滤器故障排除

阅读其他Metabase 版本的文档。

© . All rights reserved.