加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle 、SqlServer 根据日期逐日、逐月递增累加、逐行累加

发布时间:2020-12-12 13:57:21 所属栏目:百科 来源:网络整理
导读:动态追加日累计、月累计: 测试表tb_test_over 中有SCRQ、RSJ两列,存储每日的日数据; select * from tb_test_over ; 使用 OVER 函数动态追加列,根据 SCRQ 对 RSJ 累计求和; select scrq,rsj, sum (rsj) over( order by scrq) as nsj from tb_test_over o

动态追加日累计、月累计:

  1. 测试表tb_test_over 中有SCRQ、RSJ两列,存储每日的日数据;
select * from tb_test_over ;
  1. 使用OVER函数动态追加列,根据SCRQRSJ累计求和;
select scrq,rsj,sum(rsj) over(order by scrq) as nsj from tb_test_over order by scrq;
  1. 使用OVER 结合 PARTITION BY 对每月进行累加;
select scrq,sum(rsj) over(partition by to_char(scrq,'yyyy-mm') order by scrq) ysj from tb_test_over order by scrq;
  1. 综合版,查询日、月、年累加数据;
select scrq,'yyyy-mm') order by scrq) ysj,sum(rsj) over(order by scrq) as nsj from tb_test_over order by scrq;

5、最后追加一个动态字符列转行技巧;
'A,B,V,C,D,S,A'这么一个字符串,根据逗号将数据输出到每行;

SELECT REGEXP_SUBSTR ('A,A','[^,]+',1,ROWNUM) as str FROM DUAL CONNECT BY ROWNUM <= LENGTH ('A,A') - LENGTH (REPLACE ('A,',',''))+1;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读