sql - 更新并使用 sum 来计算列值

标签 sql sql-server sql-update

我正在使用 sql-server。我有一个包含公司列表值的表。我希望锻炼每个公司的百分比作为此列表的一部分。请参见下面的示例

name   value    wgt%
abc    10
plm    15
xyz    25

所以上面是我有的,下面是我想要的,

name   value    wgt%
abc    10       20
plm    15       30
xyz    25       50

我试过类似的方法:

update D_COMP_VALUES
set wgt = value / sum(value)   

最佳答案

使用子选择获取总和:

update D_COMP_VALUES
set wgt = 100 * value / (select sum(value) from D_COMP_VALUES)

但是存储计算值通常不是一个好主意。相反,创建一个 View ,它永远不会有不一致的数据!

关于sql - 更新并使用 sum 来计算列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30397937/

相关文章:

sql - "INSERT"处或附近的 postgreSQL 语法错误

python - 使用 django.db 时如何将原始 SQL 与 ORM API 混合使用?

c# - asp.net 的 SqlDependency 问题

sql - 尽管源表中缺少记录,如何始终运行 UPDATE FROM?

sql - 创建多查询

sql - 将更新的列返回到数组变量中

mysql - 修剪(两者)不修剪主角

sql - 如何按月递增 SQL Server 2005 中的 DateTime 字段?

json - 从 SQL Server 中的 JSON 获取键的名称

c# - .NET Core 无法连接到远程 SQL Server 数据库