将整列加上另一列的单行相加并显示在第三列中

Posted

技术标签:

【中文标题】将整列加上另一列的单行相加并显示在第三列中【英文标题】:Sum whole column plus a single row of another column and display in a third column 【发布时间】:2020-10-13 17:42:29 【问题描述】:

这是我的问题,我确实有一个查询返回给我这个表

select * from basic_table;
|----network----|--- previa ----|--- month---|--- organic_value----|---financial_value-----|
 Rental                  1              1          1000                  1250                 
 Rental                  1              3          3750                  3750
 Service                 2              1           2000                 2200
 Maintance               1              2           350                   500

我需要的是总结 previa 相同的所有有机价值 + 每个月的财务价值

所以决赛桌是

|----network----|--- previa ----|--- month---|--- organic_value----|---financial_value-----| ---NEW_COLUMN--|
 Rental                  1              1          1000                  1250                 (1k + 3,75+0,35k) = 5100 + 1,25k = 6350
 Rental                  1              3          3750                  3750                 (5100) + 3,75k = 8850
 Service                 2              1           2000                 2200                  2000 + 2200 = 4200
 Maintance               1              2           350                   500                  (5100 + 500) =5600

任何提示如何解决这个问题?

【问题讨论】:

我不遵循逻辑。 5100哪里来的?它有两次。 @GordonLinoff:据我所知,这是organic_valueprevia = 1 的总和。 新列您应该将特定 previa 的所有有机价值(这就是为什么 5100)加上该行的财务价值相加。例如。第 4 行 previa 为 1,因此 previa 的有机价值总和 1 => 5100 + 该行的财务价值 (500) ,最终结果为 5600 【参考方案1】:

这是一个窗口总和:

select t.*, 
    financial_value  + sum(organic_value) over(partition by previa) as new_column
from mytable t

【讨论】:

以上是关于将整列加上另一列的单行相加并显示在第三列中的主要内容,如果未能解决你的问题,请参考以下文章

如何对两列求和并通过减去它们的聚合 SQL 和 C# 在第三列中显示结果?

在SQL中,如何将两列的数据相乘以获得第三列

Pandas 根据非恒定值的第三列将值从一列复制到另一列

第三列单元格应该是excel第一列和第二列中两个数字的乘积

Sql Server 查询,一共三列,怎样查出第一个列值相同,第二列值最大的第三列的值?

在一个表中添加两列的值并插入第三列