0

2 つのサブセレクトを結合するクエリを実行すると、internalErrorが発生します。クエリは次のようになります。

SELECT data_table.title AS name
FROM
  ( 
    SELECT id, title
    FROM
    [citrius-altrius-fortius:analyze.topic_735_1354233600], [citrius-altrius-fortius:analyze.topic_735_1354320000]
  ) AS  data_table
  INNER JOIN
  ( 
    SELECT id FROM
    [citrius-altrius-fortius:analyze.topic_735_1354233600], [citrius-altrius-fortius:analyze.topic_735_1354320000]
    WHERE
    UPPER(title) CONTAINS ("BUDGET")
  ) AS filter_table
ON data_table.id == filter_table.id

これは私が得る返事です:

{
  "status": {
    "state": "DONE", 
    "errors": [
      {
        "reason": "internalError", 
        "message": "Unexpected. Please try again."
      }
    ], 
    "errorResult": {
      "reason": "internalError", 
      "message": "Unexpected. Please try again."
    }
  }, 
  "kind": "bigquery#job", 
  "statistics": {
    "endTime": "1354849344685", 
    "startTime": "1354849344148"
  }, 
  "jobReference": {
    "projectId": "citrius-altrius-fortius", 
    "jobId": "job_e870b1fe67b94897a157dfa4f60b9725"
  }, 
  "etag": "\"OLvSfkwPDZ7M36YVEFvi-PBaFQM/SnvQhZKTutJxTY1bJLqqdphkA00\"", 
  "configuration": {
    "query": {
      "createDisposition": "CREATE_IF_NEEDED", 
      "query": "SELECT data_table.title AS name\nFROM\n  ( \n    SELECT id, title\n    FROM\n    [citrius-altrius-fortius:analyze.topic_735_1354233600], [citrius-altrius-fortius:analyze.topic_735_1354320000]\n  ) AS  data_table\n  INNER JOIN\n  ( \n    SELECT id FROM\n    [citrius-altrius-fortius:analyze.topic_735_1354233600], [citrius-altrius-fortius:analyze.topic_735_1354320000]\n    WHERE\n    UPPER(title) CONTAINS (\"BUDGET\") LIMIT 1000\n  ) AS filter_table\nON data_table.id == filter_table.id\n;", 
      "destinationTable": {
        "projectId": "citrius-altrius-fortius", 
        "tableId": "anonba898655_04dc_4d8d_8c29_673a36ba4c9f", 
        "datasetId": "_6fff29df40f86299d525686858be44df27c8dfd0"
      }
    }
  }, 
  "id": "citrius-altrius-fortius:job_e870b1fe67b94897a157dfa4f60b9725", 
  "selfLink": "https://www.googleapis.com/bigquery/v2/projects/citrius-altrius-fortius/jobs/job_e870b1fe67b94897a157dfa4f60b9725"
}

titleidは単純な文字列列です (繰り返しなし)。両方のテーブルのサイズはかなり小さいです (結合の右側に制限 1000 を追加しても何も変わりません)。ただし、1 つのテーブルのみを使用するようにクエリを変更すると、次のようになります。

SELECT data_table.title AS name
FROM
  ( 
    SELECT id, title
    FROM
    [citrius-altrius-fortius:analyze.topic_735_1354233600]
  ) AS  data_table
  INNER JOIN
  ( 
    SELECT id FROM
    [citrius-altrius-fortius:analyze.topic_735_1354233600]
    WHERE
    UPPER(title) CONTAINS ("BUDGET") LIMIT 1000
  ) AS filter_table
ON data_table.id == filter_table.id

それは毎回動作します。複数のテーブルから選択している 2 つのサブセレクトを結合する適切な方法は何でしょうか?

4

1 に答える 1

0

結合でテーブル ユニオンを実行している既知のバグにぶつかっています: BigQuery - JOIN の左側の UNION == 予期しない。もう一度お試しください

私たちは積極的に修正に取り組んでいます。

于 2012-12-07T18:45:03.717 に答える