sql - 计数大于 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 来实现这一点,非常感谢,我真诚地感谢您的帮助。
解决方案
计算为 [(系统 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
推荐阅读
- javascript - 在程序的不同阶段使用小吃店功能的不同元素
- c# - 如果应用程序在屏幕保护程序下启动,MainWindow 将保持隐藏状态
- ios - `NSLayoutConstraint`的内存泄漏
- c++ - 在 OpenCV 和 OpenCL 中使用 Stitching() 时 CPU/GPU 的使用情况
- vba - 我可以附加一个 IF 语句来查找该文件夹是否存在?
- kdb - 在 q 中为 .z.pg 处理程序编写逻辑
- sql - 根据帐户类型与不同表的关系
- javascript - 在 contenteditable div 中编辑 v-model / 在 div 中突出显示文本
- android - MotionLayout:如何为边距设置动画
- c# - 如何在asp.net mvc中使用日期过滤器在不同视图中显示记录