使用revenue表 用sql进行累加求和  效果如第一张图所示(第二列为月份,第三列是逐级累加值)

图片1.png微信图片编辑_20211230131845.jpg

FineReport yaaa 发布于 2021-12-30 11:54 (编辑于 2021-12-30 13:23)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2021-12-30 12:25(编辑于 2021-12-30 13:34)

PARTITION BY t.月份,t.类别 ORDER BY t.月份,t.类别

把你里面的id去掉。。。

select 

t2.月份,

t2.类别, 

round(sum(t2.revenue) OVER( PARTITION BY t2.类别 ORDER BY t2.类别,t2.month_number) ,2) as amount_s

from (select t.月份,t.类别,t.revenue,replace(t.月份,'月','')*1 as month_number from revenue t) t2

  • yaaa yaaa(提问者) 还是不对
    2021-12-30 13:01 
  • CD20160914 CD20160914 回复 yaaa(提问者) 看上面更新的。。
    2021-12-30 13:02 
  • yaaa yaaa(提问者) 改完了也不对 还是没有求和 而且月份也没有按顺序排下来
    2021-12-30 13:06 
  • CD20160914 CD20160914 回复 yaaa(提问者) 看一下。。上面改的行不行。用我的语句。你到底要怎么累计?也没有看出你更新了什么。
    2021-12-30 13:18 
  • CD20160914 CD20160914 回复 yaaa(提问者) 不要用你的语句查。你把原始这个表的数据查出来。说一下到底要怎么累加。。
    2021-12-30 13:20 
最佳回答
0
shirokoLv6资深互助
发布于2021-12-30 12:36(编辑于 2021-12-30 13:14)

为啥按id求和啊,你一个id一个月估计也就一条吧,求和跟没求一样

--

select 月份,类别,SUM(revenue) from revenue

group by 月份,类别

  • yaaa yaaa(提问者) 那这条语句应该怎么改
    2021-12-30 13:01 
  • shiroko shiroko 回复 yaaa(提问者) 不知道你的数据表结构和你的需求啊
    2021-12-30 13:05 
  • shiroko shiroko 回复 yaaa(提问者) 如果只需要按类别和月份求和,不需要over(),最后加上group by 类别,月份就好了
    2021-12-30 13:06 
  • yaaa yaaa(提问者) 回复 shiroko 看我更新的
    2021-12-30 13:08 
  • shiroko shiroko 回复 yaaa(提问者) 这个跟没更新一样啊,你看下上面的如果不行,就select * from revenue 截图看一下,然后说一下你的目标需求
    2021-12-30 13:14 
  • 3关注人数
  • 383浏览人数
  • 最后回答于:2021-12-30 13:34
    请选择关闭问题的原因
    确定 取消
    返回顶部