oracle求日累计数据
1、需求:
有一表数据accu,有日、业务月、数量三个字段,业务月是指上个月28号至当月27号。
通过日累计求和得到某一天的业务月累计数量。例如 20211001 这一天的月累计是20210928-20211001的日数量求和得到的。
2、表数据
create table accu ( day_code varchar2(10), buss_month varchar2(10), fnum int ) insert into accu values('20210927','202109',1); insert into accu values('20210928','202110',2); insert into accu values('20210927','202109',2); insert into accu values('20210929','202110',3); insert into accu values('20210930','202110',4); insert into accu values('20211001','202110',5);
3、利用over (partition by ... order by ... )求月累计数量
select day_code,buss_month,fnum, sum(fnum) over (partition by buss_month order by day_code) m_fnum from accu order by day_code
从结果中发现有两个27号的数据,通过distinct也无法筛选掉,因为fnum是不同的,所以在累计之前通过group by将同一天的数据求和
select day_code,buss_month,fnum, sum(fnum) over (partition by buss_month order by day_code) m_fnum from (select day_code,buss_month,sum(fnum) fnum from accu group by day_code,buss_month) order by day_code
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下