数据如下:
工单号         完成时间毫秒值
000001         1355662908
000001         1355662907
000001         1355662906
000002         1355662905
000002         1355662904怎么写个sql,可以展示如下格式的数据
工单号         完成时间毫秒值
000001         1355662908
000001         
000001         
000002         1355662905
000002         也就是工单号为000001的一组里只显示第一个也就是值最大的这个数,000002类似select c1, c2 from table1 order by c2

解决方案 »

  1.   

    select c1, max(c2) from table1 order by group by c1
      

  2.   

    忘了说了,原来的sql里有10几个字段,还有好多字段是用函数,case/when算出来的。如果用group by的话,是不是要把这10几个字段都列到group by后面
      

  3.   

    select "工单号",decode(rn,1,"完成时间毫秒值") from(
    select "工单号","完成时间毫秒值", 
           row_number() over(partition by "工单号" order by "完成时间毫秒值" desc) rn from ax 
    ); 
    工单号 DECODE(RN,1,"完成时间毫秒值")
    ------ -----------------------------
    000001 1355662908
    000001 
    000001 
    000002 1355662905
    000002 
      

  4.   


    with table1 as
    (
         select '000001' dh,1355662908 s from dual union all
         select '000001' dh,1355662907 s from dual union all
         select '000001' dh,1355662906 s from dual union all
         select '000002' dh,1355662905 s from dual union all
         select '000002' dh,1355662904 s from dual 
    )select t1.dh "工单号",
           decode(t1.s,ms,ms,null) "完成时间毫秒值"
    from table1 t1,
         (select dh,max(s) ms from table1 group by dh) t2
    where t1.dh = t2.dh
        工单号    完成时间毫秒值
    -----------------------------------
    1 000001 1355662908
    2 000001
    3 000001
    4 000002 1355662905
    5 000002
      

  5.   

    如果前面加一列,还想得到想同的结果怎么办呢?
    职工编码 工单号         完成时间毫秒值
    1 000001         1355662908
    1 000001         1355662907
    1 000001         1355662906
    1 000001         1355662905
    1 000001         1355662904
    1 000002         1355662908
    1 000002         1355662907
    1 000002         1355662906
    1 000002         1355662905
    1 000002         1355662904
    2                        
    2                        
    2                        怎么写个sql,可以展示如下格式的数据
    职工编码  工单号         完成时间毫秒值
    1  000001         1355662908
    1  000001         
    1  000001         
    1 000001         
    1 000001         
    1 000002         1355662908
    1 000002         
    1 000002         
    1 000002         
    1 000002         
    2                        
    2                        
    2                        我现在想把职工编码和工单号都分组,然后取每个小组里的最大值。
      

  6.   

    不是一个意思么 直接加上来就行了.
     
    select t1.bm "职工编码",t1.dh "工单号",
           decode(t1.s,ms,ms,null) "完成时间毫秒值"
    from table1 t1,
         (select bm,dh,max(s) ms from table1 group by gm,dh) t2
    where t1.dh = t2.dh and t1.bm = t2.bm