BigQuery SQL 通过应用程序脚本按 DATE 过滤
Posted
技术标签:
【中文标题】BigQuery SQL 通过应用程序脚本按 DATE 过滤【英文标题】:BigQuery SQL via Apps Scripts filtering by 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
子句的查询不起作用。我正在寻找几个小时的答案,我想我已经尝试了一切。
关于如何格式化此查询以获取所需数据的任何提示?
【问题讨论】:
【参考方案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,
;
现在一切正常了:)
【讨论】:
以上是关于BigQuery SQL 通过应用程序脚本按 DATE 过滤的主要内容,如果未能解决你的问题,请参考以下文章
适用于 BigQuery 的 Google Apps 脚本(标准 SQL)- NaN
从 Google 脚本将数据插入 BigQuery:遇到“”
在 bigquery Standard sql 中按问题分组,并且无法获取唯一记录
使用 Apps 脚本定义/创建 BigQuery 保存视图的 SQL 查询