我尝试过运行一个简单的查询,但收到错误response too large to return
选择accno,年,月,计数(*)作为cnt
来自eric.accesslogs_tbl
GROUP BY accno,年,月
按顺序排序,年,月限1000;
我的数据表统计信息:
表格大小:64.7 GB
行数:59,971,371
有解决方法吗?否则,我们无法使用它。
答案 0 :(得分:2)
您遇到的限制不是您可以返回的行数,限制是GROUP BY
操作内部使用的数据量。
有一项实验性功能可以让您删除此限制:尝试使用GROUP EACH BY
代替GROUP BY
。
或者,您可以在不使用TOP
function的实验性功能的情况下执行此操作。你的情况使得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。