我已经用标准SQL和旧版SQL编写了此查询,但是我不断收到不同的错误,包括语法错误,甚至找不到表。我已经在Tableau的自定义SQL数据连接器和Web UI中进行了尝试,并得到了相同的语法错误。我正在尝试查询一年的Google Analytics(分析)表,但对于标准SQL却收到这样的错误:
Syntax error: Unexpected string literal '93868086.ga_sessions_*' at [1:244]
我不太担心旧版SQL,因为我认为我要查询的表不喜欢它。我只是感到困惑,为什么当通用语法将表添加为字符串时,为什么它不期望字符串。难道我做错了什么?我通常使用Legacy SQL编写,因此,如果我遗漏了某些东西,我不会感到惊讶。任何帮助,将不胜感激。
标准SQL:
SELECT date, channelGrouping, geoNetwork.networkLocation, device.browserVersion, hits.dataSource, device, hits.page, SUM(totals.timeOnSite), SUM(totals.visits), SUM(totals.bounces) FROM '93868086.ga_sessions_*' WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 365 DAY)) AND FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)) GROUP BY date ORDER BY date ASC
如果BigQuery Standard SQL不符合[A-Za-z_][A-Za-z_0-9]*正则表达式 ,则需要在表名前后加上反引号,因此,您需要像下面这样使用
[A-Za-z_][A-Za-z_0-9]*
FROM `93868086.ga_sessions_*`