我现在有这样的一个问题。有一张表:表名取为types
A B C D E
abc 1 2 0.5 1
cde 2 1 0.5 1
fgh 0.5 1 2 0
ijk 0 1 1 2
lmn 2 2 1 0.5我需要将选择其中的两行或者多行,比如取出abc和lmn,将后面的B,C,D,E列里的数据进行取最大值运算。
得出数据 abc lmn  2 2 1 1还有第二种需求是取出两列数据,比如取出C列和D列,将C,D列的数据两两相乘。
得出数据 
C*D
1
0.5
2
1
2请问这应该如何解决呢?新手发帖,如果有欠缺还请指教!

解决方案 »

  1.   

    abc lmn 2 2 1 1这个怎么个得法?  把所有选择的A列都显示出来?
      

  2.   

    这样可以?
    create table types (a varchar2(10),b number(10,1),c number(10,1),d number(10,1),e number(10,1));insert into types values ('abc',1,2,0.5,1);
    insert into types values ('cde',2,1,0.5,1);
    insert into types values ('fgh',0.5,1,2,0);
    insert into types values ('ijk',0,1,1,2);
    insert into types values ('lmn',2,2,1,0.5); select wm_concat(a) a,max(b) b,max(c) c,max(d) d,max(e) e
    from types
    where a in ('abc','lmn');    a     b   c   d   e
    -----------------------------------------
    1 abc,lmn 2 2 1 1
    select c*d
    from types;     c*d
    ------------------
    1 1
    2 0.5
    3 2
    4 1
    5 2
      

  3.   

    感谢,原来这么简单,之前被百度的lag和lead给误导了。貌似要给分吧,等会儿,我不知道怎么操作
      

  4.   


    还有一个问题,如果需要将两行的数据相乘,有办法么?就是上面的例子,取abc 和 lmn两行,后面的B,C,D,E列的数据进行相乘。要得出这样的数据:
    abc,lmn 2 4 0.5 0.5这样可行吗?