我需要计算两个数字之间的增长百分比。 在下面的示例中,起始值是第一个,当前值是第二个。 当我尝试以下查询时,结果不符合预期(由我)。
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
我应该使用哪个查询来获得每种情况的一致输出,以便我可以使用它在图表中正确显示?
答案 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%是正确的。