【问题标题】:Google BigQuery Error: Resources exceeded during query executionGoogle BigQuery 错误:查询执行期间超出资源
【发布时间】:2016-03-23 20:55:07
【问题描述】:

当我在 BigQuery 中运行以下简单查询时出现“超出资源”错误,此错误的大多数答案都与 EACH 子句有关,但我的查询中没有使用任何此类子句。

SELECT
  XXX_lnaourj_ID,
  XXX_DR_Tma_LC,
  XXX_CR_Tma_LC,
  XXX_Amount_LC,
  XXX_TLAffect_LC,
  XXX_Entry_Desc,
  XXX_DocType,
  XXX_TCode,
  XXX_Company,
  XXX_Posted_By,
  XXX_Parked_By,
  XXX_Accounting_Date,
  XXX_Creation_Date
FROM
  [acl_data.XXX_JE_All_Formatted]
WHERE
  XXX_lnaourj_ID IN (
  SELECT
    XXX_lnaourj_ID
  FROM
    [acl_data.XXX_JE_All_Formatted]
  WHERE
    XXX_Creation_Date - XXX_Accounting_Date > 30 )
ORDER BY
  XXX_lnaourj_ID ASC;

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    删除 ORDER BY,它应该可以工作

    我认为 BigQuery 引擎使用 JOIN 翻译您的查询(这就是您看到它被引用的原因),因此您的另一个选择是显式使用 JOIN 重写您的查询并尝试使用和/或不使用 EACH 子句

    请参阅https://stackoverflow.com/a/24191584/5221944 了解来自 bigquery 团队成员的更多详细信息

    编辑

    我还没有意识到这是同一张桌子!为什么不使用下面的东西?

    SELECT
      XXX_lnaourj_ID,
      XXX_DR_Tma_LC,
      XXX_CR_Tma_LC,
      XXX_Amount_LC,
      XXX_TLAffect_LC,
      XXX_Entry_Desc,
      XXX_DocType,
      XXX_TCode,
      XXX_Company,
      XXX_Posted_By,
      XXX_Parked_By,
      XXX_Accounting_Date,
      XXX_Creation_Date
    FROM [acl_data.XXX_JE_All_Formatted]
    WHERE XXX_Creation_Date - XXX_Accounting_Date > 30
    

    【讨论】:

    • 但是如果我想排序呢?你给我的链接没有解决手头的问题。谢谢。
    • 额外链接只是为了额外阅读:o) - 实际上我给了你几个选项的答案 - 它们对你有用吗?
    • 我在同一张表上使用 join 重写了它,但即使不使用 ORDER BY 子句,我也会得到同样的错误。
    • 在这种情况下 - 我建议您使用此信息 + 重写查询来更新您的问题 - 这样您就有机会获得更好的答案或/并且我会跟进我的答案
    • 因为相同的 XXX_lnaourj_ID 可能出现在这两种情况下,即 XXX_Creation_Date - XXX_Accounting_Date > 30 和 XXX_Creation_Date - XXX_Accounting_Date 30 那么我需要 XXX_lnaourj_ID 的所有行。希望我清楚。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2019-10-17
    • 2021-03-11
    • 1970-01-01
    相关资源
    最近更新 更多