我有一个通用问题,我将尝试用一个例子来解释。
假设我有一个包含以下字段的表格:“id”、“name”、“category”、“appearances”和“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 不接受 update 列中的别名 T,我没有找到其他方法来实现这一点。
有任何想法吗?