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}} 的字段筛选器,并且将其映射到具有 State 语义类型的字段,则可以将位置仪表板筛选器映射到您的 SQL 问题。在此示例中,您将
- 创建新仪表板(或转到现有仪表板)。
- 点击铅笔图标进入仪表板编辑模式。
- 添加包含
State字段筛选器的 SQL 问题。 - 添加新仪表板筛选器(或编辑现有位置筛选器)。
- 点击 SQL 问题卡片上的下拉菜单,将小部件连接到
State字段筛选器。
如果您向问题添加了基本的日期变量(即非字段筛选器),则只能使用仪表板筛选器选项单一日期。因此,如果您尝试在仪表板上使用其他时间选项,则需要将变量更改为字段筛选器并将其映射到日期字段。

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