首页 > 解决方案 > 计数大于 1 的总和

问题描述

目前我执行下面的代码

select  system,aid,mid,buysell,sdate,medate,namount,type, count(*)
from databasefile
where mid in ('123456')
group by  system,aid,mid,buysell,sdate,medate,namount,type
order by aid

我得到以下数据''' 在此处输入图像描述

我想插入一个差异字段,计算为 [(系统 a 的 namount) - (系统 z 的 namount)]。系统 z 的 namount 计算为(买入的总 namount - 卖出的总 namount)。

请帮我获得一个 sql 来实现这一点,非常感谢,我真诚地感谢您的帮助。

标签: sql

解决方案


计算为 [(系统 a 的 namount) - (系统 z 的 namount)]

如果这是您想要的,您可以使用窗口函数:

select system, aid, mid, buysell, sdate, medate, namount, type, count(*),
       (sum(case when system = 'a' then namount else 0 end) over () -
        sum(case when system = 'z' then namount else 0 end) over ()
       )
from databasefile
where mid in ('123456')
group by system, aid, mid, buysell, sdate, medate, namount, type
order by aid

推荐阅读