小编Gre*_*all的帖子

BigQuery Group通过STRUCT

在BigQuery中,我可以使用标准SQL成功运行以下查询:

SELECT 
  COUNT(*) AS totalCount,
  city,
  DATE_TRUNC(timeInterval.intervalStart, YEAR) AS start
FROM 
  sandbox.CountByCity
GROUP BY 
    city, start
Run Code Online (Sandbox Code Playgroud)

但是当我将start值嵌套在STRUCT中时,它就失败了……

SELECT 
  COUNT(*) AS totalCount,
  city,
  STRUCT(
    DATE_TRUNC(timeInterval.intervalStart, YEAR) AS start
  ) as timeSpan
FROM 
  sandbox.CountByCity
GROUP BY 
    city, timeSpan.start
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我收到以下错误消息:

无法从[10:11]的SELECT列表别名timeSpan中的GROUP BY字段引用

编写查询以使start值嵌套在STRUCT中的正确方法是什么?

sql google-bigquery

5
推荐指数
1
解决办法
2386
查看次数

BigQuery Java API 中的默认项目 ID

我正在使用 BigQuery Java API 和以下代码执行查询:

  try (FileInputStream input = new FileInputStream(serviceAccountKeyFile)) {

     GoogleCredentials credentials = GoogleCredentials.fromStream(input);

     BigQuery bigQuery = BigQueryOptions.newBuilder()
           .setCredentials(credentials)
           .build()
           .getService();

     QueryRequest request = QueryRequest.of("SELECT * FROM foo.Bar");
     QueryResponse response = bigQuery.query(request);

     // Handle the response ...

  }
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用一个特定的服务帐户,其密钥文件由serviceAccountKeyFile.

我期待 API 会project_id从密钥文件中获取。但它实际上是project_idGOOGLE_APPLICATION_CREDENTIALS环境变量引用的默认密钥文件中提取的。

这对我来说似乎是一个错误。有没有办法通过显式设置默认项目来解决该错误?

google-bigquery

1
推荐指数
1
解决办法
1653
查看次数

标签 统计

google-bigquery ×2

sql ×1