SQL 参数
您可以通过在原生/SQL 编辑器中向 SQL 查询添加参数(又称变量)来创建 SQL 模板。
这些变量会创建小组件,人们可以用它们来插入变量的值。您还可以将仪表盘小组件连接到这些参数。
SQL 变量类型
当您定义一个变量时,将出现**变量和参数**侧边栏。您可以为变量设置类型,这会改变 Metabase 呈现的筛选器小组件的类型。
变量类型包括
- 字段筛选变量:创建带有日期选择器或下拉菜单的“智能”筛选器小组件。要使用字段筛选,您需要连接到查询中包含的数据库字段。
- 基本变量:文本、数字和日期变量。您几乎总是希望使用字段筛选而不是这些基本变量,因为字段筛选会创建“智能”筛选器小组件,但 Metabase 为无法使用字段筛选的情况提供了这些基本变量。
- 时间分组参数:允许人们更改按日期列对结果进行分组的方式:按月、周、日等。
您可以在单个查询中包含多个变量,Metabase 会向问题中添加多个小组件。要重新排列小组件的顺序,请进入编辑模式并单击任何小组件并拖动它。
配置您的筛选器小组件
当您将字段筛选变量或基本变量添加到 SQL 代码中时,您需要在侧边栏中对其进行配置。
- 设置**筛选器小组件类型**。选项会根据您使用的是字段筛选(首选)还是基本变量(如果不能使用字段筛选)而有所不同。
- 设置**筛选器小组件**标签。
- 设置**用户应如何在此变量上进行筛选?**
- 如果筛选器映射到别名表中的字段,您需要指定表和字段别名。
- 可选地,设置一个**默认筛选器小组件值**。
查看筛选器小组件。
为 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 问题。在此示例中,您需要
- 创建一个新的仪表盘(或转到现有的仪表盘)。
- 单击**铅笔图标**进入**仪表盘编辑模式**。
- 添加包含您的
State
字段筛选的 SQL 问题。 - 添加一个新的仪表盘筛选器(或编辑一个现有的位置筛选器)。
- 单击 SQL 问题卡片上的下拉菜单,将小组件连接到
State
字段筛选。
如果您向问题中添加了一个基本的**日期**变量(即不是字段筛选),那么只能使用仪表盘筛选选项**单个日期**。因此,如果您试图在仪表盘上使用其他时间选项之一,您需要将该变量更改为字段筛选并将其映射到一个日期字段。
延伸阅读
阅读其他版本的 Metabase 的文档。