计算SQL Server中的运行增加数
我有一个有趣的问题要解决,那就是将一个数字增加多个百分比 假设我有一个小部件,我想在表中增加这个小部件的成本百分比 WidgetPercent计算SQL Server中的运行增加数,sql,sql-server,Sql,Sql Server,我有一个有趣的问题要解决,那就是将一个数字增加多个百分比 假设我有一个小部件,我想在表中增加这个小部件的成本百分比 WidgetPercent WidgetID | Percent ---------+-------- 1 .10 1 .06 小部件 WidgetID | Cost ---------+------- 1 100 我想将小部件的成本增加第一个百分点,然后再增加下一个百分点,并输出一个值 范例 100 * 1.10 = 1
WidgetID | Percent
---------+--------
1 .10
1 .06
小部件
WidgetID | Cost
---------+-------
1 100
我想将小部件的成本增加第一个百分点,然后再增加下一个百分点,并输出一个值
范例
100 * 1.10 = 110
110 * 1.06 = 116.60
输出应为116.60。结果将由WidgetID提供
我想我应该在SUM中使用OVER(),但在本文中不太确定
请注意,环境是SQL Server 2012 forward。您可以使用如下算法:
select w.widgetid, w.cost * wp.factor
from (select widgetid, exp(sum(log(1 + percent))) as factor
from widgetpercent wp
group by widgetid
) wp join
widget w
on wp.widgetid = w.widgetid;
是一把小提琴。。第二行应该是0.06,而不是0.6。您不应该有一列来指定应用百分比的顺序吗?编辑,谢谢,戈登。只要应用了所有百分比,顺序就不重要了。