SELECT id,100.0/(SELECT SUM(points) FROM data)*points AS reward,points FROM data;
私が抱えている最初の問題は、これが内部選択を何度も実行するのに効率的であるとは思わないことです。使用するのに最適な結合は何ですか。
2 番目の問題は、結果のデータセットを使用して何百もの個別の更新クエリを生成していることです。1 つのクエリで選択したものから更新するにはどうすればよいですか?
すなわち
UPDATE aggregate AS a SET a.reward=a.reward+data.reward
SELECT ...
WHERE a.dataid = data.id