我有值 1000 和表:
table
(
Id int (PK),
Percent float,
Value int
)
我必须根据两个法则(两个分离的策略)为该表中的每条记录分配 1000 个字段值:
1)平均分配策略
2) 分配策略的百分比
按策略1)输入
Id Percent Value
1, - 0
2, - 0
3, - 0
输出
Id Percent Value
1, - 333
2, - 333
3, - 334
按策略2)输入
Id Percent Value
1, 10% 0
2, 90% 0
输出
Id Percent Value
1, 10% 100
2, 90% 900
谁能解释一个优雅的方法来做到这一点。 谢谢。
最佳答案
UPDATE yourtable SET Value =( SELECT 1000/COUNT(Value) from yourtable )
UPDATE yourtable SET Value =( Value * Percent )
但不确定如何处理舍入错误。
编辑:可能在第一种情况下使用第二条语句将缺失的数字添加到最后一行。
UPDATE yourtable SET Value = Value + 1000 -( SELECT SUM(Value) from yourtable) where id= (SELECT MAX(Id) from yourtable)
但这并不好,因为最后一行的数字可能会大得多……您最终会比其他行的数字大得多。 (尝试使用 6 个输入行运行查询...)
关于algorithm - 如何在记录之间分配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5897661/