Oracle分组查询5——实例

来源:互联网 发布:java des加密工具类 编辑:程序博客网 时间:2024/06/06 00:55

1、建表 造数据:

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;

2、查询

     select decode(grouping_id(order_date,order_no,order_book),6,order_book||'小计',7,'合计',
     to_char(order_date,'yyy-mm-dd')) order_date1,order_no,
     decode(grouping_id(order_date,order_no,order_book),6,null,order_book) order_book1,
     sum(order_fee) order_free,sum(order_num) order_num
     from t
     group by rollup(order_book,(order_date,order_no))
     order by order_book,order_date;