Oracle表的常用查询实验(七).pdf
文本预览下载声明
醉醉爱爱梁梁静静茹茹
三三生生七七世世,,永永堕堕阎阎罗罗,,只只为为情情故故,,虽虽死死不不悔悔
OOrraaccllee表表的的 用用查查询询实实验验 ((七七))
分类: Oracle表的查询 2013-11-28 10:35 269人阅读 评论 (2) 收藏 举报
OOrraaccllee表表的的 用用查查询询实实验验 ((七七))
1.问题描述:
有一个商品信息表,该表反应了各种商品的销售情况,一个产品是按照gid和gname两个字段来区分的,一个产品可
能会有多个型号。
create table T_Goods
(
Id int primary key,
GId varchar2(10) not null,
GName varchar2(20) not null,
GColour varchar2(10),
GWithin int,
GSize varchar2(10),
GNumber int
)
CREATE SEQUENCE seq_goods
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 10;
现要将各种商品各种型号的销售情况进行汇总统计,达到如下效果:
2.需求分析:
分类统计说明要用到group by 和sum ()函数
group by 分两种情况:(1)group by GId, gname, gcolour, gwithin, gsize 得到的是每种型号的销售量
(2)group by gid,
gname 得到的是每种产品的销售量
3.解答过程:
(1)求每种型号的销售量
(2)求每种产品的销售量
(3)求商品的总销售量
(4)将以上3个结果集联合在一起
1
(5)用decode ()函数精简gid和gname,用row_number () over (partition by ) 函数来排序
4.SQL代码:
select rownum seq,
decode(rn, 1, gid) gid,
decode(rn, 1, gname) gname,
gcolour,
gwithin,
gsize,
gnumber
from (select t.*, row_number () over (partition by gid,gname order by gnumber) rn
from (select GId,
gname,
gcolour,
gwithin,
gsize,
sum (gnumber) gnumber
from t_goods
group by GId, gname, gcolour, gwithin, gsize
union all
select gid, gname, null, null, 小计, sum (gnumber)
from t_goods
group by gid, gname
union all
select null, null, null, null, 总计, sum (gnumber)
from t_goods) t);
更多
上一篇:为什么最终她离开了你?
下一篇:简易性格测试题--你适合
显示全部