在自定义查询中使用参数

借助参数,您可以将参数从数据源传递回底层 SQL 查询,从而构建响应迅速且可自定义的报告。如需在自定义查询中使用参数,请遵循运行参数化查询中记录的语法指南。


标准参数

您可以在任何自定义查询中使用以下参数:

参数

用途

@DS_START_DATE

获取报告日期范围的开始日期。

@DS_END_DATE

获取报告日期范围的结束日期。

@DS_USER_EMAIL

获取已登录用户的电子邮件地址。

如需使用这些参数,请按以下步骤操作:

  1. 在连接面板的参数部分,启用要使用的参数。当您启用 @DS_USER_EMAIL 参数时,数据洞察会提示您授予对您电子邮件地址的访问权限。
  2. 在查询中,输入参数名称时请使用大写格式。

Data Studio 会将所有参数值作为文本字符串传递。如需将参数字符串作为日历日期、数字或其他数据类型进行处理,请使用适当的 SQL 转换函数,例如 PARSE_DATEPARSE_TIMESTAMPCAST

使用日期参数将日期范围传递给底层查询

如果报告包含日期范围控件,查看者可以使用该控件直接从数据库中请求不同的开始日期和结束日期。

使用电子邮件参数提供对数据的行级访问权限

借助 email 参数,您可以仅显示与报告、数据源或探索的已登录用户相关联的数据。该用户必须登录 Google 账号,并且必须同意向数据洞察提供其电子邮件地址。如果查看者不同意,报告中基于此数据源的所有图表都会显示授权错误。


自定义参数

您可以在自定义查询中使用在数据洞察界面中创建的任何参数。

在连接页面中创建参数

  1. 在自定义查询编辑器的参数部分中,点击 + 添加参数
  2. 配置参数选项
  3. 点击确定

隐藏数据源中的自定义参数

默认情况下,报告编辑者可以直接在报告中修改自定义参数。如需禁止报告编辑者更改参数值,您可以直接在数据源配置中隐藏该参数:

  1. 点击 更多选项
  2. 点击隐藏

详细了解允许在报告中使用数据源参数


在自定义查询中使用参数

在自定义 SQL 查询的正文中,将硬编码的值替换为以 @ 字符开头的标识符(例如 @param_name)。


参数示例

以下是一些使用参数的示例:

自定义参数示例

SELECT word FROM `TABLE` WHERE corpus = @corpus;

包含 CONTAINS 和数值阈值的字符串

SELECT * FROM `bigquery-public-data.baseball.games_post_wide`
WHERE REGEXP_CONTAINS(gameId, @s)
AND attendance > @attendance LIMIT 100;

多选字符串形参

请注意,UNNEST 如何将多选形参值的数组列表扁平化:

SELECT * from user.users as user WHERE display_name in UNNEST(@name);

使用标准格式的日期参数

SELECT creation_date, age, display_name from user.users as user
WHERE creation_date > PARSE_DATE('%Y%m%d', @DS_START_DATE)
AND creation_date < PARSE_DATE('%Y%m%d', @DS_END_DATE);

使用 Unix 时间戳(以微秒为单位)的日期参数

SELECT creation_date, age, display_name from user.users as use
WHERE creation_date > UNIX_MICROS(PARSE_TIMESTAMP('%Y%m%d', @DS_START_DATE))
AND creation_date < UNIX_MICROS(PARSE_TIMESTAMP('%Y%m%d', @DS_END_DATE))

电子邮件参数示例

SELECT * FROM Sales WHERE sales-rep-email = @DS_USER_EMAIL;