Ca représente quoi sum(nb), c'est la somme totale des nb de la table ?
update table set poids = nb/(select sum(nb) from table)
Attention à la division par NULL ou 0 mais je crois que mysql est très laxiste sur ces erreurs, à vérifier...
Une autre approche normalement plus rapide car le calcul de la somme est effectué une fois et pas pour chaque ligne (mais je ne suis pas sûr de la syntaxe):
1 2 3
| update table t
cross join (select sum(nb) as sum_nb from table) s
set t.poids = t.nb/s.sum_nb |
Sinon toujours se demander la pertinence de stocker une valeur calculée, car évidemment il faut maintenir cette valeur.
Partager