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

时间:2018-01-24 23:29:22

标签: sql google-bigquery

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

  

错误:查询执行期间超出资源:无法在分配的内存中执行查询。用于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 个答案:

答案 0 :(得分:3)

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

目前尚不清楚正确的加盟条件是什么。但您可以从删除逗号开始,并使用JOIN子句中的连接条件使用正确的ON语法。