适用于 BigQuery 的 Google Apps 脚本(标准 SQL)- NaN
Posted
技术标签:
【中文标题】适用于 BigQuery 的 Google Apps 脚本(标准 SQL)- NaN【英文标题】:Google Apps Script for BigQuery (Standard SQL) - NaN 【发布时间】:2018-09-12 02:53:29 【问题描述】:我的应用程序脚本面临一些问题,这些问题似乎在运行,但只有选定的行,我不知道为什么。想知道这是否可能是标准 SQL 和某些参数的问题。这是我的代码
function runQuery()
var configuration =
query:
useQueryCache: false,
destinationTable:
projectId: "projectA",
datasetId: "datasetA",
tableId: "NewTable"
,
writeDisposition: "WRITE_TRUNCATE",
createDisposition: "CREATE_IF_NEEDED",
allowLargeResults: true,
useLegacySql: false,
query: "WITH a AS" +
"(SELECT Date, Month, Quarter, Week, Year FROM Dataset.Table1`)," +
"b AS "+
"(SELECT * FROM `Dataset.Table2`)," +
"c AS "+
"(SELECT * FROM `Dataset.Table3`) " +
"SELECT Date, Month, Quarter, Week, Year, .... FROM a" +
"LEFT JOIN b ON a.x = b.x LEFT JOIN c ON a.x = c.x"
;
var job =
configuration: configuration
;
var jobResult = BigQuery.Jobs.insert(job, "projectA");
Logger.log(jobResult);
(已更改变量和表名以空白内容,但已显示代码的一般结构)
SQL 代码本身适用于 BigQuery,因此问题不在于查询中的错误。
当我尝试运行它时,BigQuery 上的日志似乎显示执行的代码只是代码的最后 2 行,前面有一个 NaN
NaNSELECT Date, Month, Quarter, Week, Year, .... FROM a LEFT JOIN b ON a.x = b.x LEFT JOIN c ON a.x = c.x
感谢您对此的任何帮助。谢谢
【问题讨论】:
会不会是query: "WITH a AS" + "(SELEC
的空格?在随后的 concat 运算符中也是如此
@FKrauss 你指的是AS后面的空格吗?已尝试添加该内容,但效果不佳。 :(
不仅是那个,还有很多你是连接而不是与其他字符间隔
刚刚尝试了空格,不幸的是它没有任何区别。最后两行没有空格。
您是否尝试打印“查询”以查看其中的值?它应该是整个查询语句,对吧?我的意思是“console.log(configuration.query.query);”在原版中,因为这个被重写了。
【参考方案1】:
我认为,您在下面的行中缺少反引号
"(SELECT Date, Month, Quarter, Week, Year FROM Dataset.Table1`)," +
应该是
"(SELECT Date, Month, Quarter, Week, Year FROM `Dataset.Table1`)," +
【讨论】:
以上是关于适用于 BigQuery 的 Google Apps 脚本(标准 SQL)- NaN的主要内容,如果未能解决你的问题,请参考以下文章
适用于 BigQuery 的 Google Apps 脚本(标准 SQL)- NaN
sql 脚本适用于 MySQL,但不适用于 google bigquery
Google API - Android BigQuery 客户端的应用级授权