首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL中对同一列和两行进行减法运算?

如何在SQL中对同一列和两行进行减法运算?
EN

Stack Overflow用户
提问于 2018-06-15 03:54:03
回答 2查看 29关注 0票数 0

假设我有如下数据

代码语言:javascript
复制
Date A B
1/1  3 6
1/2  4 5
1/3  2 7

我想编写一个创建列C的查询,其中C由Ai - Ai -1+ B计算。例如,对于1/2,列C将等于4-3+ 5 = 6。对于1/3,列C将等于2-4+7=5。任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2018-06-15 03:55:29

您可以使用LAG

代码语言:javascript
复制
SELECT *, 
   A + B - COALESCE(LAG(A) OVER(ORDER BY Date),0) AS c
FROM tab
票数 0
EN

Stack Overflow用户

发布于 2018-06-15 03:55:33

您将使用lag()

代码语言:javascript
复制
select date, a, b,
       (a + b - lag(a) over (order by date)) as c
from t;

这将在第一行生成null。如果您希望将“上一行”视为0而不是null,请使用lag()的3参数形式

代码语言:javascript
复制
select date, a, b,
       (a + b - lag(a, 1, 0) over (order by date)) as c
from t;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50864940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档