首页 文章

用于PARTITION BY的排序运算符使用了太多内存(Big Query)

提问于
浏览
0

我正在尝试按周数对平均得分进行分组,以便我可以显示平均值,以及同一图表中的过滤平均值,但运行以下查询会返回错误 .

错误:查询执行期间超出资源:无法在分配的内存中执行查询 . 用于PARTITION BY的排序运算符使用了太多内存..

Select
AVG(table.score) OVER (PARTITION BY cal.weeknum) as AVGScore
FROM 
    (Select CONCAT ((CAST(EXTRACT(YEAR FROM exam.start)AS 
    STRING))," ",(CAST(EXTRACT(WEEK(Monday) FROM meeting.start)AS 
    STRING))) AS WeekNum 
    FROM `dbo.data_source.exam` as 
    exam) as cal,
`dbo.data_source.table` as table

是否有任何使用较少资源的替代功能,或其他减少资源需求的方法

1 回答

  • 3

    你的问题不是 partition by . 您的问题是 FROM 子句中的逗号 . 您正在使用标准SQL,因此这是 cross join .

    目前尚不清楚正确的连接条件是什么 . 但是,您可以首先删除逗号并使用适当的,明确的 JOIN 语法和 ON 子句中的连接条件 .

相关问题