本帖最后由 boomfar 于 2014-05-30 10:29:19 编辑

解决方案 »

  1.   


    with testT as 
    (select '给水泵运行方式不当' as a,'过热蒸汽出口压力' as b,12.0000  as c,'过热蒸汽出口压力升高' as d from dual
    union all
    select '锅炉水冷壁受热面玷污','主蒸汽流量',80.0000,'主蒸汽流量升高' from dual
    union all
    select '锅炉水冷壁受热面玷污','主汽门前主蒸汽压力',69.0000,'主汽门前主蒸汽压力升高' from dual
    union all
    select '炉膛负压升高','4号低加下端差',27.0000,'4号低加下端差降低'from dual
    union all
    select '炉膛负压升高','8号低加上端差',20.0000,'8号低加上端差降低' from dual
    union all
    select '再热器受热面玷污','中压缸进汽温度',22.0000,'中压缸进汽温度降低' from dual)
    select et.* from testT et 
    left join (select t.a,max(t.c) as cm from testT t group by t.a) st on et.a=st.a
    order by st.cm desc,et.c desc;LZ看下可否,我试了一下大概还可以。
      

  2.   

    晕 申请也申请不uilai   爱咋滴咋地
      

  3.   

    我要对以上数据进行分组,先按A进行分组,每个分组内再按C进行排序,排序完后每个分组再取分组内的最大值进行分组的排序,有人能看懂吗?这句话,我老是把自己绕进去。我看你给出 两组数据的规则,好象就是 Order By A , C ,没有别的情况。
    可能是我理解的有问题。