sql - 计算存储过程中的百分比

标签 sql sql-server tsql stored-procedures

好的,所以我在代码中执行此操作,我想知道在数据库中执行此操作是否更好。

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/

相关文章:

sql-server - 将字符串转换为 xml 并插入 Sql Server

sql - 如何计算列成员数据库表的算术表达式?

sql - 2008 链接服务器上带有句点的列名称

sql - 逐行(无光标或循环)

sql - 有没有办法将 DBCC CheckIdent 的值存储到变量中?

sql - 从父子表生成字符串树分支

MySQL 根据共同关系从多个表中选择

c# - 如何使用 SQL 将数据插入 MS Access 文件?

php - 使用 PHP 从 Linux 服务器连接到远程 MS SQL 数据库

sql-server - 如何检查表是否具有列存储索引?