SQL 参数

Variables

您可以通过在原生/SQL 编辑器中向 SQL 查询添加参数(又称变量)来创建 SQL 模板。

这些变量会创建小组件,人们可以用它们来插入变量的值。您还可以将仪表盘小组件连接到这些参数

SQL 变量类型

当您定义一个变量时,将出现**变量和参数**侧边栏。您可以为变量设置类型,这会改变 Metabase 呈现的筛选器小组件的类型。

变量类型包括

  • 字段筛选变量:创建带有日期选择器或下拉菜单的“智能”筛选器小组件。要使用字段筛选,您需要连接到查询中包含的数据库字段。
  • 基本变量:文本、数字和日期变量。您几乎总是希望使用字段筛选而不是这些基本变量,因为字段筛选会创建“智能”筛选器小组件,但 Metabase 为无法使用字段筛选的情况提供了这些基本变量。
  • 时间分组参数:允许人们更改按日期列对结果进行分组的方式:按月、周、日等。

您可以在单个查询中包含多个变量,Metabase 会向问题中添加多个小组件。要重新排列小组件的顺序,请进入编辑模式并单击任何小组件并拖动它。

配置您的筛选器小组件

当您将字段筛选变量或基本变量添加到 SQL 代码中时,您需要在侧边栏中对其进行配置。

  1. 设置**筛选器小组件类型**。选项会根据您使用的是字段筛选(首选)还是基本变量(如果不能使用字段筛选)而有所不同。
  2. 设置**筛选器小组件**标签。
  3. 设置**用户应如何在此变量上进行筛选?**
    • 下拉列表。下拉列表会以可选择列表的形式显示该字段的所有可用值。
    • 搜索框。搜索框允许人们输入以搜索特定值。
    • 输入框。输入框提供一个简单的文本字段用于输入值。
  4. 如果筛选器映射到别名表中的字段,您需要指定表和字段别名
  5. 可选地,设置一个**默认筛选器小组件值**。

查看筛选器小组件

为 SQL 变量设置值

要将 SQL 变量设置为一个值,您可以

  • 筛选器小组件中输入一个值,然后重新运行问题。
  • 向 URL 添加一个参数并加载页面。

通过 URL 设置参数

要向 URL 添加值,请遵循以下语法

?variable_name=value

例如,要将问题中的 {{category}} 变量设置为值“Gizmo”,您的 URL 将类似于

https://metabase.example.com/question/42-eg-question?category=Gizmo

要设置多个变量,请用与号 (&) 分隔参数

https://metabase.example.com/question/42-eg-question?category=Gizmo&maxprice=50

将 SQL 问题连接到仪表盘筛选器

为了让一个 SQL/原生问题能与仪表盘筛选器一起使用,该问题必须包含至少一个变量或参数。

可以与 SQL 问题一起使用的仪表盘筛选器的类型取决于字段。例如,如果您有一个名为 {{var}} 的字段筛选,并将其映射到一个具有“州”语义类型的字段,您可以将一个位置仪表盘筛选器映射到您的 SQL 问题。在此示例中,您需要

  1. 创建一个新的仪表盘(或转到现有的仪表盘)。
  2. 单击**铅笔图标**进入**仪表盘编辑模式**。
  3. 添加包含您的 State 字段筛选的 SQL 问题。
  4. 添加一个新的仪表盘筛选器(或编辑一个现有的位置筛选器)。
  5. 单击 SQL 问题卡片上的下拉菜单,将小组件连接到 State 字段筛选。

如果您向问题中添加了一个基本的**日期**变量(即不是字段筛选),那么只能使用仪表盘筛选选项**单个日期**。因此,如果您试图在仪表盘上使用其他时间选项之一,您需要将该变量更改为字段筛选并将其映射到一个日期字段。

Field filter

延伸阅读

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想要改进这些文档吗?提出更改建议。
© . This site is unofficial and not affiliated with Metabase, Inc.