2014-06-06 4 views
1

쿼리를 실행하려고하면 BigQuery에서 "예기치 않은 오류가 발생했습니다. 다시 시도하십시오."라는 메시지가 나타납니다. 반복적으로 발생합니다.BigQuery에서 "예기치 않은 오류가 발생했습니다. 다시 시도하십시오."

두 개의 중첩 된 하위 쿼리가 있고 중간 쿼리는 여러 개의 count (distinct x,)를 사용하므로 문제가 있는지 궁금합니다. "

:. 내가 외부 쿼리를 제거합니다 (그러나 여전히 카운트 특색있는있는 경우, 내가 내부 오류를보고

+0

을 경우 누군가를 Google에서이 사실을 알게되면 내 직업 ID가 진짜입니다 : job_4CBlFODR8i4D7UAOzF1F1OPqP8I. – alan

답변

4

이 오류는 COUNT (DISTINCT) 곧 개선 될 것입니다. 지금은 하위 선택에서 GROUP BY와 함께 여러 COUNT (DISTINCT)를 사용하는 경우 외부 SELECT에서 COUNT (DISTINCT) 출력을 모두 사용하거나 사용하지 않아야합니다.

문제가있는 경우 COUNT (DISTINCT)를 GROUP BY 및 SUM()으로 바꾸는 것이 더 쉬울 수 있습니다. 예를 들어, 자신과 비슷한이 쿼리는 외부 필드 중 하나가 제거되면 실패합니다

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); 

하지만 별개의 분야로 그룹에 관계없이 실행됩니다 상응하는 쿼리

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); 
0

하지만 잘 작동하지 않습니다, 그리고 우리가 외부 했어야 오류 것 같다 범위 집계는 독립적으로 반복되는 모든 분기에서 가장 반복되는 필드를 사용해야합니다. 사용하지 않는 필드 : f6_, f5_, f4_, f3_, f2_, f1_ "

쿼리를 디버깅하기에 충분하지 않은지 알려줍니다. 오류에 대한 설명을 더 추가 할 수 있습니다.

+0

응답 해 주셔서 감사합니다. 오류가 발생할 수 있다면 좋을 것입니다. 내 외부 쿼리 select * 경우 잘 작동하지만 일부 필드를 포함하지 않으면 오류가 발생합니다. 내부 쿼리가 그냥 플랫 데이터를 반환해야하므로 일부 필드가 포함되어야하는지 이해할 수 없습니다. – alan

+0

모든 정교화에 크게 감사 할 것입니다. 나는 당신의 새 책을 샀지 만 관련성있는 것을 볼 수 없었습니다. 미리 감사드립니다! – alan

관련 문제