如何在oracle中添加小计行?

拉吉

我想在行之间添加小计

例如,这是行和列注:这三列是我从maintable中获取的

abc 
a1 100 100 
a2 200 200 
a3 300 300 
a4 400 400 
a5 500 500 
a6 600 600 
a7 700 700 
a8 800 800 
a9 900 900 
a10 900 900

我想要这样

abc 
a1 100 100 
a2 200 200 
a3 300 300 
a4 400400
小计(a1至a4)1000 1000 
a5 500 500 
a6 600600
小计(a5至a6)1100 1100 
a7 700 700
小计(a7)700 700 
a8 800 800 
a9 900 900 
a10 
900900
小计(a8至a10)2600 2600大计5400 5400

注意:大计=小计
亚历山德罗·罗西(Alessandro Rossi)

尝试通过以下方式结合使用汇总和分组功能:

select 
  decode(grouping(a),1,decode(grouping(subtot_id), 1, 'total', 'subtotal'),a) as a,
    sum(b) as b, sum(c) as c
from (
    select trunc((rownum-1)/3) as subtot_id, a, b, c
    from your_table
    order by a
  )
group by rollup(subtot_id, a)

我在这里做了一个样本

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章