查询执行期间超出了资源:没有足够的资源来进行查询计划-太多的子查询或查询太复杂

时间:2019-02-27 20:18:13

标签: sql google-bigquery

在BigQuery中加入两个视图时,我遇到了一个问题。尝试创建简单的LEFT JOIN时,遇到以下问题:

查询执行期间超出了资源:没有足够的资源来进行查询计划-太多的子查询或查询太复杂了。

有关我的问题的一些背景信息。我工作的公司正在寻求比较两组数据:

1)第一个视图包含过去5年我们所有的销售预定数据(总共大约130,000个数据条目),其中包括三个COUNT列。这些COUNT列将整体上查看系统中的所有电子邮件地址,并计算该电子邮件地址已从我们的三个内部公司之一(代码为BH,PH和EH)购买了多少次。

2)第二个视图再次显示了每个内部公司的三个电子邮件收件箱中的所有电子邮件:BH,PH和EH,总共有200,000个数据条目。同样,此视图有一个COUNT列,可整体查看该视图中的所有电子邮件,并告诉您该电子邮件地址已经向我们的三个收件箱中的每个电子邮件发送了多少次。

我正在尝试从“电子邮件收件箱”视图中获取DISTINCT电子邮件地址并确定。 “对于每个给我们三个收件箱中的任何一个发电子邮件的人,他们给每个收件箱发电子邮件的次数是多少,而对那些发电子邮件的人来说,他们从我们三个不同的公司中的每个公司购买了多少产品?

我现在想通过共同的电子邮件地址字段执行“左加入”以创建我的最终视图。

任何建议将不胜感激!

我的代码如下:

SELECT
  DISTINCT(r1.EmailAddressOfSender),
  r1.CountEmailAddressSenderBH,
  r1.CountEmailAddressSenderPH,
  r1.CountEmailAddressSenderEH,
  r2.CountEmailAddressBH,
  r2.CountEmailAddressPH,
  r2.CountEmailAddressEH,
FROM
  `EMAILVIEW` r1
LEFT JOIN
  `RESERVATIONSVIEW` r2
ON
  UPPER(r1.EmailAddressOfSender) = UPPER(r2.EmailAddress)
ORDER BY
  r1.EmailAddressOfSender ASC

0 个答案:

没有答案