SQL запрос для усреднения и округления

#php #mysql #sql #math

#php #mysql #sql #математика

Вопрос:

Мне нужен запрос, который обновит строку в Games , чтобы получить значение среднего значения из ее записанных, Ratings умноженное на количество Plays , которое у нее было. Это то, что у меня есть до сих пор, но, похоже, это не работает:

 UPDATE Games
SET PlaysRating = ROUND(AVG
                       (SELECT `Rating` FROM GameRatings WHERE GameID = '37') 
                     * (SELECT COUNT(*) FROM Plays WHERE GameID = '37')) 
WHERE ID = 37
  

Комментарии:

1. Примечание ’37’ — это просто пример идентификатора игры, а не часть запроса

Ответ №1:

Может выглядеть следующим образом:

 UPDATE Games
SET    PlaysRating = round(
       (SELECT count(*)    FROM Plays       WHERE GameID = 37)
     * (SELECT avg(Rating) FROM GameRatings WHERE GameID = 37))
WHERE  ID = 37
  

Кстати, предполагая, что ID является числовым типом, я удалил кавычки '' .