oracle行总计,oracle rollup,cube子句的应用举例(可以实现总计,小计)

小咪咪 2023-01-18 04:27 214阅读 0赞

create table test(sales varchar2(10),dest varchar2(10),revenue number);

insert into test values(‘smith’,’hangzhou’,1000);

insert into test values(‘smith’,’wenzhou’,2000);

insert into test values(‘allen’,’wenzhou’,3000);

insert into test values(‘allen’,’wenzhou’,4000);

SALES   DEST     REVENUE

-————- ————— —————

smith   hangzhou     1000

smith   wenzhou     2000

allen   wenzhou     3000

allen   wenzhou     4000

比如说我们想统计每个sales的总销售收入,每个sales在各个城市的销售收入,另外还想知道每个城市所有sales的销售收入总额,以及所有sales的总收入

就像以下报表

名字   hangzhou wenzhou 总计

-——— —————— —————- ————-

allen        7000    7000

smith  1000    2000    3000

1000    9000    10000

那我们运行下面这条语句就行了

select sales,dest,sum(revenue) from test group by cube(sales,dest);

SALES   DEST  SUM(REVENUE)

-————- ————— ——————

10000  所有sales的总销售收入

wenzhou  9000   所有sales在温州的销售收入

hangzhou  1000   所有sales在杭州的销售收入

allen        7000  allen的所有销售收入

allen   wenzhou  7000  allen在温州的销售收入

smith        3000  smith所有的销售收入

smith   wenzhou  2000  smith在温州的销售收入

smith   hangzhou 1000 smith在杭州的销售收入

8 rows selected.

如果不想统计城市这个维度,那么用rollup子句

hangzhou wenzhou

allen   7000

7000

smith   1000   2000

3000

10000

select sales,dest,sum(revenue) from test group by rollup(sales,dest)

SALES   DEST    SUM(REVENUE)

-————- ————— —————————

allen    wenzhou    7000  allen在温州的销售收入

allen          7000  allen的所有销售收入

smith   wenzhou     2000 smith在温州的销售收入

smith   hangzhou   1000 smith在杭州的销售收入

smith          3000  smith 所有的销售收入

10000  所有sales的总销售收入

发表评论

表情:
评论列表 (有 0 条评论,214人围观)

还没有评论,来说两句吧...

相关阅读

    相关 dwz table增加总计

    本篇来介绍dwz table增加总计、小计,总计代表所有分页的数据总和,小计代表当前页面的数据总和。 我先说明一下小计和总计的概念,假如当前查询结果有100条记录,