SQL Query Average

88
8

Я пытаюсь разработать sql-запрос, чтобы выработать среднее значение из 3 значений до двух знаков после запятой.

SELECT RatingId, Productivity, CodeQuality, AgileProcess
, ROUND(AVG(Productivity + CodeQuality + AgileProcess) / 3, 2) AS Average
FROM DeveloperRating
GROUP BY RatingId, Productivity, CodeQuality, AgileProcess'

Производительность, CodeQuality, AgileProcess - все значения, установленные в настоящее время в БД.

Если значения заданы следующим образом: Производительность = 2 CodeQuality = 8 AgileProcess = 4

Я получаю ответ 4. Я хочу, чтобы ответ был 4.66?

Может ли кто-нибудь помочь?

спросил(а) 2021-01-25T18:21:10+03:00 4 месяца, 4 недели назад
1
Решение
63

Здесь вам не нужно использовать агрегатные функции! Вы группируете для каждой строки в своей таблице. Кроме этого, вам может потребоваться отдать свои значения DOUBLE чтобы получить то, что вам нужно.

Пытаться:

 select ratingId, productivity, codeQuality, agileProcess
, round(cast(productivity as double) +
cast(codeQuality as double) +
cast(agileProcess as double) / 3,2)
from developerRating

ответил(а) 2021-01-25T18:21:10+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема