MSSQL百分比计算不一致

时间:2014-06-18 11:36:53

标签: percentage

我需要计算两个数字之间的增长百分比。 在下面的示例中,起始值是第一个,当前值是第二个。 当我尝试以下查询时,结果不符合预期(由我)。

SELECT ( CAST (68 as float) / CAST (1 as float) * 100) --current value 68, start value 1, the percentage of growth is 68% --MSSQL is giving the result 6800, which is 100 times too high

SELECT ( CAST (30 as float) / CAST (10 as float) * 100) --current value 30, start value 10, the percentage of growth is 300% --MSSQL is giving the result 300, which makes sense

SELECT ( CAST (20 as float) / CAST (40 as float) * 100) --current value 20, start value 40, the percentage of growth is -50% --MSSQL is giving the result 50, which somewhat makes sense

我应该使用哪个查询来获得每种情况的一致输出,以便我可以使用它在图表中正确显示?

1 个答案:

答案 0 :(得分:0)

MySQL正确计算它。您的百​​分比增长计算(您的评论)看起来很奇怪。

E.g。你的第一个例子:起始值68,当前值1.(68/1)* 100 = 6800.如果你想要68%的增长,那么你的起始值需要是1.68而不是68,这将使起始值达到168%当前值。 I.E.它增长了68%。

你的第三个例子:(20/40)* 100 =(1/2)* 100 = 50.起始值是当前值的一半,所以50%是正确的。