“错误:意外。请在BigQuery中再试一次”

时间:2014-06-06 01:15:00

标签: google-bigquery

当我尝试运行查询时,我在BigQuery中收到“错误:意外。请再试一次”消息。它反复发生。

我有两个嵌套的子查询,中间查询使用几个计数(不同的x,),所以我想知道这是不是问题。如果我删除外部查询(但仍然有所有计数区分,它确实工作正常。

2 个答案:

答案 0 :(得分:4)

这个错误源于COUNT(DISTINCT)实现中的怪癖,希望很快得到改进。现在,如果在子选择中使用多个COUNT(DISTINCT)和GROUP BY,则需要在外部SELECT中使用全部或不使用COUNT(DISTINCT)输出。

如果这很麻烦,用GROUP BY和SUM()替换COUNT(DISTINCT)可能更容易。例如,如果删除了任何外部字段,则此类查询与您自己的查询将失败:

SELECT Cnt_a, Cnt_b
FROM (SELECT COUNT(DISTINCT IF(a > 0, c, NULL)) AS Cnt_a,
             COUNT(DISTINCT IF(b > 0, c, NULL)) AS Cnt_b
      FROM (SELECT 0 AS a, 1 AS b, 2 AS c, 3 as d)
      GROUP BY d);

但是,通过distinct字段分组的等效查询将执行,无论如何:

SELECT SUM(NonZero_a) AS Cnt_a, SUM(NonZero_b) AS Cnt_b
FROM (SELECT SUM(a) > 0 AS NonZero_a,
             SUM(b) > 0 AS NonZero_b
      FROM (SELECT 0 AS a, 1 AS b, 2 AS c, 3 as d)
      GROUP BY c, d);

答案 1 :(得分:0)

我查看了内部错误,这似乎是我们应该做出的错误:

“Scoped Aggregation必须消耗每个独立重复分支中最重复的字段。必须消耗的未使用字段:f6_,f5_,f4_,f3_,f2_,f1 _”

如果这不足以调试查询,请告诉我,我可以添加有关错误的更多说明。