2016-07-13 3 views
0

настоящее время я использую следующий запрос, чтобы получить высокий средний результат:средневзвешенное в MySql

select ContentType, AVG(Result) as AvgContent from dopractice where S_Id [email protected]_Id group by ContentType order by 2 desc limit 1; 

Я пытаюсь изменить мой запрос, чтобы вычислить самую высокую средневзвешенную.

Например:

((X*1)+(Y*2)+(Z*3))/3 

Есть ли способ сделать это с помощью одного запроса?

Примечание: столбцы в таблице dopractice (Id, StudentId, LessonId, ContentType, result, Date)

ответ

-1

Попробуйте этот код. Может быть, это поможет вам.

select temp.content,MAX(temp.AvgContent) 
    FROM 
    (
    select ContentType AS content, AVG(Result) as AvgContent 
    from dopractice 
    where StudentId = @S_Id 
    group by ContentType order by ContentType desc 
    ) AS temp 
    group by temp.ContentType; 
+0

Как рассчитать средневзвешенное значение по вашему предложению? – John

Смежные вопросы