数据表结构:
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
  要求:以价格最好的那条商品进行汇总,然后计算出此类商品类别的总价格和总数量和平均价格

解决方案 »

  1.   

    要求一,参考如下,第二个没有看懂
    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