Я хочу рассчитать среднюю оценку группы строк в таблице MySQL.Дело в том, что может использоваться разная шкала, в зависимости от того, каким пользователем вы вошли.
Примером шкал может быть:
- 1-5
- 1-10
- AF (за исключением E, очевидно)
В числовых масштабах более высокое число лучше, но в алфавитном масштабе лучше.
Как мне сделать SQL-запрос для получения правильного среднего?
Пример средних:
- 5, 5, 4, 2 = 4
- 8, 10, 7, 6, 4 = 7
- A, A, C = B
- A, F, B, B = C
- F, F, B, D = D
Используемый мной запрос:
SELECT CHAR(ROUND(AVG(ORD(UPPER(grade))))) AS average
Проблема здесь - последний пример.Получается, что E
использует этот запрос, но это недопустимая оценка, это должно быть D
.
Я не знаю, как с этим справиться.Каков наилучший способ получить среднюю оценку в MySQL, если шкала имеет исключенные значения (например, шкала AF исключает E)?Я мог бы вычислить его в PHP, если нужно также