AVG на нескольких столбцах

У меня есть таблица, в которой в одном столбце сохранена оценка курса, а в другом столбце сохраняются отношение этого курса, тогда я хочу рассчитать среднее количество курсов с коэффициентом, я пишу этот код, но сталкиваюсь с ошибкой, пожалуйста, помогите мне

select SUM((grade * ratio) / SUM(ratio)) as averageOfCourses from myTable 

Ваша проблема – это, вероятно, неправильные круглые скобки.

 SELECT SUM(grade * ratio) / SUM(ratio) AS averageOfCourses FROM myTable 

Если вы действительно хотите сделать СУММУ значений, разделенных SUM, тогда вам придется работать намного сложнее; вы не можете выполнять агрегаты агрегатов напрямую.

Чтобы сделать то, что вы написали, вам придется переписать его как:

 SELECT SUM((grade * ratio) / sum_ratio) AS averageOfCourses FROM (SELECT grade, ratio, SUM(ratio) AS sum_ratio FROM myTable GROUP BY grade, ratio) AS precalculation 

(Последний AS необходим стандартным SQL, но ничего не вносит в этот запрос.)

В этом контексте я даже не уверен, что он дает другой ответ.

пытаться

 select (SUM(grade * ratio) / SUM(ratio)) as averageOfCourses from myTable 
 declare @sum float = (select sum(ratio) from myTable) select sum( grade * ratio / @sum ) as averageOfCourses from myTable 
Давайте будем гением компьютера.