У меня есть общий вопрос, который я попытаюсь объяснить на примере.
Допустим, у меня есть таблица с полями: "id", "name", "category", "внешний вид" и "ratio"
Идея состоит в том, что у меня есть несколько предметов, каждый из которых относится к одной категории и "появляется" несколько раз. Поле отношения должно включать процентное количество появлений каждого элемента от общего числа появлений элементов в категории.
В псевдокоде мне нужно следующее:
Для каждой категории
найти общую сумму появлений для предметов, связанных с ним. Например, это можно сделать с помощью (select sum("appearances") from table group by category
)
За каждый элемент
установить значение коэффициента как внешний вид элемента, деленное на сумму, найденную для категории выше
Теперь я пытаюсь достичь этого с помощью одного запроса на обновление, но, похоже, не могу этого сделать. То, что я думал, я должен сделать, это:
update Table T
set T.ratio = T.appearances /
(
select sum(S.appearances)
from Table S
where S.id = T.id
)
Но MySQL не принимает псевдоним T в столбце обновления, и я не нашел других способов добиться этого.
Есть идеи?