首页 > 解决方案 > Oracle SQL - 将值放大以达到所需的总数

问题描述

我正在寻找一个允许我分解一组值以实现所需目标的 sql 函数/计算。

让它更清楚。我有构建产品的步骤。每一步都需要一定的时间。8.6、7.2、6.6、6.6、3.1、5.9、9.2、4.5、4.4、2.7、7.7、7.7、5.8。这些行的总和给了我 80 天的时间来完成构建。但是我的经理过来说现在需要 125 天。如何计算每个步骤,以便新的总数给我 125 天?

Excel 可以使用目标搜索来实现这一点。我在 SQL 或 PLSQL 中找不到类似的函数。

任何帮助是极大的赞赏。

标签: sqloraclemathplsql

解决方案


这是你想要的吗?

select t.*,
       t.time * (125 / sum(t.time) over (partition by product)) as scaled_time
from t;

这会按比例放大每个值,因此总和将为125.


推荐阅读