适用于 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 客户端的应用级授权

在适用于 PHP 的 Google BigQuery API 中捕获“响应太大而无法返回错误”的正确方法是啥?

谷歌 BigQuery 身份验证

App Action 适用于 App Actions 测试工具,但不适用于 Google Assistant