解决方案 »

  1.   

    楼主可以自己测试一把,没有环境.
     select id,name,age,min(decode(rn,1,color,null))time1,
    min(decode(rn,2,color,null))time2,
    min(decode(rn,3,color,null))time3, 
    min(decode(rn,1,color,null))result1,
    min(decode(rn,2,color,null))result2,
    min(decode(rn,3,color,null))result3
    from (select id,loc,num,color,
                   row_number() over(partition by time  order by time)rn
              from t)group by id,loc,num order by id;
      

  2.   

    select id,max(name),max(age),
    min(decode(rn,1,time)) time1,
    min(decode(rn,2,time)) time2,
    min(decode(rn,3,time)) time3, 
    min(decode(rn,1,result)) result1,
    min(decode(rn,2,result)) result2,
    min(decode(rn,3,result)) result3
    from (select t.*,
                   row_number() over(partition by id  order by time)rn
              from t)
    group by id
    order by id;