Моя таблица выглядит следующим образом
id | SomeValue | count | percentage
1 | plum | 9 |
2 | apple | 2 |
3 | banana | 10 |
4 | orange | 8 |
Я хочу рассматривать только строки с id> = 2. Процент для яблока должен быть 2 / (2 + 10 + 8) = 0,1
Тот же метод применяется ко всем строкам.
Я могу получить сумму с
select sum(count) from table1 where id>=2
для обновления в процентах, в настоящее время у меня есть
update table1
set percentage=count/(select sum(count)
from table1
where id>=2)
where id>=2
Это работает для моей цели, но я думаю, что пересчитывает сумму для каждой строки (поправьте меня, если я ошибаюсь), и это не очень эффективно. Пожалуйста, помогите мне сделать это максимально эффективным. Я должен обновить до миллиона записей. Спасибо.