【问题标题】:BigQuery can run query in console but not launch it as a jobBigQuery 可以在控制台中运行查询,但不能将其作为作业启动
【发布时间】:2015-07-06 20:47:27
【问题描述】:

我在将以下查询作为作业启动时遇到问题:

SELECT COUNT(*) FROM
(
  SELECT field_name FROM [dataset.table]
  WHERE 
    time BETWEEN DATE_ADD(CURRENT_TIMESTAMP(), -30, "DAY") AND
         CURRENT_TIMESTAMP() AND
  GROUP EACH BY field_name
) AS cur_month
JOIN EACH
(
   SELECT field_name FROM [dataset.table]
   WHERE 
     time BETWEEN DATE_ADD(CURRENT_TIMESTAMP(), -60, "DAY") AND
          DATE_ADD(CURRENT_TIMESTAMP(), -30, "DAY") AND
   GROUP EACH BY field_name
) AS prev_month
ON cur_month.field_name = prev_month.field_name

在控制台中运行这个查询成功,但是用下面的java代码运行它失败

JobConfigurationQuery queryConfig = new JobConfigurationQuery()
    .setQuery(query)
    .setDestinationTable(new TableReference()
            .setProjectId(projectId)
            .setDatasetId(toDataset)
            .setTableId(toTableId))
    .setAllowLargeResults(true)
    .setCreateDisposition("CREATE_IF_NEEDED")
    .setWriteDisposition("WRITE_TRUNCATE")
    .setPriority("BATCH")
    .setFlattenResults(false);

我得到的错误是

{
  "errorResult": {
    "location": "query",
    "message": "Ambiguous field name 'field_name' in JOIN. Please use the table qualifier before field name.",
    "reason": "invalidQuery"
  },
  "errors": [
    {
      "location": "query",
      "message": "Ambiguous field name 'field_name' in JOIN. Please use the table qualifier before field name.",
      "reason": "invalidQuery"
    }
  ],
  "state": "DONE"
}

有人知道为什么吗?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    问题与以下内容重复:BigQuery - same query works when submitted from UI and reports SQL syntax error from batch

    将 flatten 结果设置为 true 解决了我的问题。

    【讨论】:

      【解决方案2】:

      您需要详细检查您确实执行了您发布的查询,因为我在查询中没有看到任何device_id,但错误消息很清楚:

      Ambiguous field name 'device_id' in JOIN. Please use the table qualifier before field name.
      

      您需要确保 device_id 列在字段名称之前具有表限定符。

      【讨论】:

      • 抱歉...发布了非匿名错误详情,device_id 是查询中的真实字段名称。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      • 2019-07-31
      • 2019-02-11
      • 1970-01-01
      相关资源
      最近更新 更多