将整列加上另一列的单行相加并显示在第三列中
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_value
与previa = 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# 在第三列中显示结果?