我试图运行一个简单的查询,但我得到了错误response too large to return
SELECT accno, year, month, count(*) as cnt
FROM eric.accesslogs_tbl
GROUP BY accno, year, month
ORDER BY cnt, year, month limit 1000;
我的数据表统计:
表大小:64.7 GB
行数:59,971,371
有解决方法吗?否则,我们无法使用它。
我试图运行一个简单的查询,但我得到了错误response too large to return
SELECT accno, year, month, count(*) as cnt
FROM eric.accesslogs_tbl
GROUP BY accno, year, month
ORDER BY cnt, year, month limit 1000;
我的数据表统计:
表大小:64.7 GB
行数:59,971,371
有解决方法吗?否则,我们无法使用它。
您达到的限制不是您可以返回的行数,限制是GROUP BY
操作内部使用的数据量。
有一个实验性功能可以让您消除此限制:尝试使用GROUP EACH BY
而不是GROUP BY
.
或者,您可以在不使用实验功能的情况下使用该TOP
函数来执行此操作。您的案例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-year-month。