对dremel链接表的查询停止工作

时间:2013-05-16 14:38:29

标签: google-bigquery

我有3个dremel链接表:2个身份表和1个连接2个身份表的表。

表A(4500行):

  • a_id(key);
  • a_attr1;
  • a_attr2。

表B(1500行):

  • b_id(key);
  • b_attr1;
  • b_attr2。

表C(700行):

  • A_ID;
  • B_ID。

简化查询是:

    SELECT
      A.a_id,
      a_attr1,
      GROUP_CONCAT(STRING(b_attr1)) AS b_attr1,
      STRFTIME_UTC_USEC(NOW(), '%a %e-%b-%Y %R %Z'),
      SUM(b_attr2) AS b_attr2
    FROM [dataspace_name]:[project_name]:[dataset_name].A
    LEFT OUTER JOIN
      (SELECT
         b_id,
         b_attr1,
         b_attr2,
         a_id
       FROM [dataspace_name]:[project_name]:[dataset_name].B
       JOIN [dataspace_name]:[project_name]:[dataset_name].C
         ON [dataspace_name]:[project_name]:[dataset_name].B.b_id = [dataspace_name]:{project_name]:[dataset_name].C.b_id
      ) AS BC
       ON A.a_id = BC.a_id
     WHERE
       a_attr2 = 1
     GROUP BY
       a_attr1
     HAVING
       (b_attr2 IS NULL) OR (b_attr2 > 0)
     ORDER BY
       a_attr1
     ;

此查询运行正常,持续数月,直到2013年5月13日上周一。

我得到的错误信息是:

大表C必须作为连接查询中最左边的表出现。

我尝试在错误消息之后重新编写查询并交换表,但是我收到了关于最右表的相同消息。

非常感谢任何可能导致失败的建议以及如何修复查询。

1 个答案:

答案 0 :(得分:0)

它已经解决,查询再次正常运行,如果有人感兴趣,可以将JOIN [dataspace_name]:[project_name]:[dataset_name].C替换为JOIN EACH [dataspace_name]:[project_name]:[dataset_name].C