oracle实验七 答案,Oracle表的常用查询实验(七)
Oracle表的常用查詢實驗(七)
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個結果集聯合在一起
(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);
總結
以上是生活随笔為你收集整理的oracle实验七 答案,Oracle表的常用查询实验(七)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redhat配置oracle yum源,
- 下一篇: 32 位的有符号整数_leetcode