mysql обновить значение столбца из 3 таблиц - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть 3 таблицы Y2018 Y2017 Y2016 с полем total_revenue .

Я хочу обновить Y2018. 5Y_growth_total_revenue со средним значением значения 3 таблиц: total_revenue.

Я пробовал вот так, но это не работает:

обновить Y2018 y8 внутреннее соединение Y2017 y7 внутреннее соединение Y2016 y6 на y7.id_azione = y8.id_azione = y6.id_azione set y8. 5Y_growth_total_revenue = (y8.total_revenue + y7.total_revenue + y6.total_revenue) / 3;

Спасибо

Карло

1 Ответ

1 голос
/ 29 апреля 2020

Вы можете попробовать этот способ

update Y2018 y8 
inner join Y2017 y7  on y7.id_azione = y8.id_azione 
inner join Y2016 y6  on y8.id_azione = y6.id_azione  
set y8.5Y_growth_total_revenue = (y8.total_revenue + y7.total_revenue + y6.total_revenue) / 3;

или использовать подзапрос, если БД не позволяет изменять таблицу, включенную в объединение

update Y2018 y8 
INNER JOIN (
    select y8.id_azione  (y8.total_revenue + y7.total_revenue + y6.total_revenue) / 3 the_avg
    from Y2018 y8
    inner join Y2017 y7  on y7.id_azione = y8.id_azione 
    inner join Y2016 y6  on  y8.id_azione = y6.id_azione  
) t on t.id_azione = y8.id_azione
set y8.5Y_growth_total_revenue = t.the_avg;

в любом случае sql также имеет значение avg () функция агрегации и группировка для управления агрегацией

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...