首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Partition By计算净值

SQL Partition By计算净值
EN

Stack Overflow用户
提问于 2020-04-23 17:01:14
回答 1查看 64关注 0票数 0

想象一下一个订单系统,有多个订单,比如Buy和Sell。数据集如下所示

我想计算净值,即(所有买方的总和-所有卖方的总和)

预期输出:

我目前已经使用Partition By得到了以下输出

代码语言:javascript
复制
SELECT 
[NAME]
,[Side]
,[Value]
,SUM([Value]) OVER (PARTITION BY [NAME],[Side]) as Net
FROM 
[Order]

输出:

但是我不知道如何减去这些值并得到预期的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 17:02:33

可以将窗口函数与条件逻辑一起使用

代码语言:javascript
复制
select
    t.*,
    sum(case side when 'B' then value when 'S' then -value end) 
        over(partition by name) net
from mytable t
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61383265

复制
相关文章

相似问题

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