好的,所以我在代码中执行此操作,我想知道在数据库中执行此操作是否更好。
SELECT sum(x) as x, sum(y) as y, sum(z) as z from tblRWNPSStat
我想做的是取所有数字的总和
total=x+y+z
然后获取每个变量在这些变量 (x,y,z) 上的百分比 非常好
x/total*100
y/total*100
z/total*100
是否可以在存储过程中执行此操作?还是我应该坚持代码? 附言我正在使用 sqlserver express r2,所以请使用 T-sql 解决方案
最佳答案
是的,它可以在 SP 中完成,但您不需要它:
SELECT SUM(X) as X,
CAST(SUM(X) AS FLOAT)/CAST(SUM(X+Y+Z) AS FLOAT ) *100 as Per_X,
SUM(Y) as Y,
CAST(SUM(Y) AS FLOAT)/CAST(SUM(X+Y+Z) AS FLOAT ) *100 as Per_Y,
SUM(Z) as Z,
CAST(SUM(Z) AS FLOAT)/CAST(SUM(X+Y+Z) AS FLOAT ) *100 as Per_Z
FROM tblRWNPSStat A
查看 sqlfiddle
关于sql - 计算存储过程中的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16727202/