【问题标题】:BigQuery SQL via Apps Scripts filtering by DATEBigQuery SQL 通过应用程序脚本按 DATE 过滤
【发布时间】:2020-10-08 13:50:01
【问题描述】:

这是我第一次使用 BigQuery。

我在 Google 表格文件中有一个自动化功能,它每天运行并将一些数据插入到我的表格中。

此时我的表中有大约 120k 行。

架构非常简单:

Field name | Type
Date       | DATE
Country    | STRING
Revenue    | FLOAT

我正在尝试获取过去 7 天内所有收入的总和。

当我在 BigQuery 控制台中运行此查询时,我得到了正确的值:

SELECT SUM(Revenue) AS sum FROM my_dataset.my_table WHERE Date > '2020-10-01'

现在,我在 Google Developers 的 this example 之后在我的 Apps 脚本中复制了完全相同的查询,但我没有得到任何查询结果。它只在我的工作表中写入标题值,结果值始终为空。

我测试了很多查询,发现只有带有WHERE Date 子句的查询不起作用。我正在寻找几个小时的答案,我想我已经尝试了一切。

关于如何格式化此查询以获取所需数据的任何提示?

【问题讨论】:

    标签: google-apps-script google-bigquery


    【解决方案1】:

    好吧,在摸索了一个星期后,我发现了问题。我不太了解 Google Cloud 平台的工作原理,但我觉得很奇怪。

    我没有更改任何代码,只是在项目中激活了 Google Apps Script API。这解决了我的问题。而且仍然不明白为什么可以在没有 API 访问权限的情况下运行一些查询,但我想这就是 GCP 的工作原理。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,我在我的请求对象中使用 useLegacySql: false 解决了它。

      const request = {
          query: `SELECT * FROM ${dataset}.${table} WHERE DATE>'${startDate}' ORDER BY DATE ASC;`,
          useLegacySql: false,
          location: location,
        };
      

      现在一切正常了:)

      【讨论】:

        猜你喜欢
        • 2020-05-12
        • 1970-01-01
        • 2018-07-23
        • 2010-11-14
        • 2018-11-07
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多