首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

求高效存储过程或者视图,该怎么解决

2012-03-01 
求高效存储过程或者视图数据表结构:GoodsnamenumberpricegoodIndex其中:name为商品名称number为数量price

求高效存储过程或者视图
数据表结构:
Goods

    name     number     price   goodIndex

    其中:name为商品名称
              number为数量
              price为价格
              goodIndex为项号,相当于产品类别

    数据为:

    mp3_1         10         20                 01
    mp3_2         5           10.5             01
    mp4_1         10         50                 02
    mp3_3         4           12.5             01
    mp4_2         5           58                 02
    cpu_1         50         1000             03
    mp4_3         12         55                 02
    cpu_2         55         800               03


要求一   显示:
 
按照goodIndex和价格排序,生成下面效果


    mp3_1         10         20                 01     1
    mp3_3         4           12.5             01     2
    mp3_2         5           10.5             01     3

    mp4_2         5           58                 02     1
    mp4_3         12         55                 02     2
    mp4_1         10         50                 02     3

    cpu_1         50         1000             03     1
    cpu_2         55         800               03     2

    要求:排序简单,即order   by   goodIndex   asc,price   desc,   但是,最右边的那个多出来的类似编号的怎么搞?..................

要求二:商品合并
 
    显示:
      商品名称   总数量   总价格   平均价格
      mp3_1         19             42.5            
      mp4_2         27             163                  
      cpu_1         105           1800
    要求:以价格最好的那条商品进行汇总,然后计算出此类商品类别的总价格和总数量和平均价格

------解决方案--------------------


要求一,参考如下,第二个没有看懂
SQL> select t.*, dense_rank() over (partition by goodid order by goodprice desc) 分类排名 from goods t;

GOODNAME GOODNUMBER GOODPRICE GOODID 分类排名
-------------------- ----------- ------------ ---------- ----------
mp3_1 10 20.00 01 1
mp3_3 4 12.50 01 2
mp3_2 5 10.50 01 3
mp4_2 5 58.00 02 1
mp4_3 12 55.00 02 2
mp4_1 10 50.00 02 3
cpu_1 50 1000.00 03 1
cpu_2 55 800.00 03 2

热点排行