我有两张桌子。假设第一个是带有 user_id + 一些数字(双)的数字,每个 user_id 可以有多行。然后我有另一个用户user_id(PRIMARY) + product of all numbers for this user from the table numbers。
由于记录被插入或从数字中删除,我需要重新计算users.product。由于一次只插入一条记录,我可以使用以下查询来完成:
UPDATE users SET product=product*{number} WHERE user_id={some_id}
但是由于记录被批量删除,因此需要一些丑陋的代码才能做到这一点,重新计算产品更简单。但是,没有像 PRODUCT 这样的功能。我可以用
exp(sum(log(coalesce(*number*,1)))
但我不确定我是否会得到一个错误的数字乘积。数字将在 1.00 到 9.99 的范围内。这样会损失多少精度?