group by扩展函数的习题(读书笔记)

本文通过具体的SQL脚本展示了如何使用GROUP BY和ROLLUP函数进行数据分组和汇总,包括常规分组、小计和合计的实现。通过对示例数据表t的操作,解释了如何按照order_book、order_date和order_no进行分组,并利用GROUPING_ID进行报表格式化的技巧。
摘要由CSDN通过智能技术生成
习题脚本:
DROP TABLE t;
CREATE TABLE t(ORDER_date DATE,--订购日期
               order_no NUMBER,--订购号
               order_book VARCHAR2(10),--订购书籍
               order_fee  NUMBER,--订单总金额
               order_num  NUMBER--订单明细数目
               );
INSERT INTO t
SELECT DATE '2010-5-1'+LEVEL,
TRUNC(dbms_random.value*1000),
'book1',100*LEVEL,LEVEL
FROM dual
CONNECT BY LEVEL<5;
INSERT INTO t
SELECT DATE '2010-6-1'+LEVEL,
TRUNC(dbms_random.value*1000),
'book2',200*LEVEL,LEVEL
FROM dual
CONNECT BY LEVEL<5;
COMMIT;

/*题目:要求在每组order_book内,按日期升序排列(order_no排序不管),常规分组在前,小计在后,合计最后。
根据结果可以看出,对于book1来说,前4行就是标准分组,即*/
SELECT t.order_date
      ,t.order_no
      ,t.order_book
      ,SUM(t.order_fee) sum_order_fee
      ,SUM(t.order_num) sum_order_num
FROM t
GROUP BY t.order_book,t.order_date,t.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值