在自定义查询中使用参数

借助参数,您可以构建响应速度更快、可自定义的报告。您可以将数据源中的参数传递回底层查询。如需在自定义查询中使用参数,请遵循运行参数化查询中记录的相关语法准则

标准参数

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

参数

用途

@DS_START_DATE

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

@DS_END_DATE

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

@DS_USER_EMAIL

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

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

  1. 参数 部分中,启用您要使用的参数。

  2. 在查询中,请务必使用大写字母作为参数名称。

所有参数值都以字符串的形式传递。如需将它们作为日期、数字或其他数据类型进行处理,请务必使用适当的转换函数,例如 PARSE_DATE、PARSE_TIMESTAMP 或 CAST。

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

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

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

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

自定义参数

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

在连接页面中创建参数

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

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

默认情况下,可以在报告中修改自定义参数。如需阻止报告编辑者更改参数的值,您可以隐藏该参数。

  1. 点击参数右侧的更多选项
  2. 点击隐藏

详细了解如何在报告中允许数据源参数。

在自定义查询中使用参数

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

参数示例

自定义参数示例:

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

使用包含和数字的字符串:

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;