首页 > 解决方案 > _TABLE_SUFFIX BETWEEN 语法未选择任何表

问题描述

我正在查看公共 GitHub 事件数据集githubarchive.day.YYYYMMDD以提取属于我的公共事件。

为此,我使用了一个简单的查询,例如:

SELECT id, actor.login, type
FROM `githubarchive.day.2*`
WHERE
  _TABLE_SUFFIX BETWEEN '20200520' AND '20200528'
AND actor.login='ahmetb'

根据此消息,此BETWEEN子句似乎不匹配任何表

查询完成(0.4 秒过去,0 B 处理)

如果我使用像这样更简单的语法,它可以工作:

SELECT id, actor.login, type
FROM `githubarchive.day.202005*`
WHERE actor.login='ahmetb' 

查询完成(经过 2.2 秒,已处理 2.4 GB)

但是,直接使用通配符语法FROM对我来说不是一个选项,因为我通过查询参数动态确定表后缀。

标签: google-bigquery

解决方案


以下是正确版本

SELECT id, actor.login, type
FROM `githubarchive.day.2*`
WHERE
  _TABLE_SUFFIX BETWEEN '0200520' AND '0200528'
AND actor.login='ahmetb'   

注意:您需要先删除2以下行中的日期

_TABLE_SUFFIX BETWEEN '0200520' AND '0200528'

或者你可能想要低于一个

SELECT id, actor.login, type
FROM `githubarchive.day.*`
WHERE
  _TABLE_SUFFIX BETWEEN '20200520' AND '20200528'
AND actor.login='ahmetb'   

这对我来说更有意义


推荐阅读