2012-10-02 24 views
0

我试图运行一个简单的查询,但我得到的错误response too large to return如何返回我的大型Google BigQuery v2响应?

SELECT ACCNO,年,月,COUNT(*)作为CNT
FROM eric.accesslogs_tbl
GROUP BY登录号,一年,月
ORDER BY cnt,年,月限1000;

我的数据表统计:

台面尺寸:64.7 GB
行数:59971371

是否有它的解决方法?否则,我们不能使用它。

+0

查询试图返回多少行? – Wug

回答

2

您正在触及的限制不是您可以返回的行数,限制是GROUP BY操作在内部使用的数据量。

有一个实验性功能,可以让您删除此限制:尝试使用​​而不是GROUP BY

或者,您可以使用TOPfunction而不使用实验功能来做到这一点。你的情况下,使TOP有点麻烦,因为你想为三个不同领域的顶级效果,但你们可以一起将它们连接起来:

SELECT TOP(acct_month, 1000), COUNT(*) AS cnt FROM (
    SELECT CONCAT(CONCAT(CONCAT(CONCAT(
     STRING(accno), '-'), STRING(year)), '-'), STRING(month)) 
     AS acct_month 
    FROM eric.accesslogs_tbl) 

结果将是一个有点靠不住,因为他们将有一个单场ACCNO岁的一个月。