表temp:   jh     rq      ly
        7P3  2008-5-6    23
        7P3  2008-5-19   21
        7P4  2008-5-3    12
        7P8  2008-5-9    25
        7P8  2008-5-20   18
        7P8  2008-5-29   14
现想将重复记录删掉,并保留最新日期的记录
          jh       rq        ly
         7P3    2008-5-19   21
         7P4    2008-5-3    12
         7P8    2008-5-29   14
请各位指教,该如何做   谢谢~

解决方案 »

  1.   

    没测试过
    delect *
    from temp a
    where not exists
    (
    select 1
       from 
           (
            select b.rowid row_id,row_number() over(partition by b.jh order by rq desc) rn
           ) c
        wehre c.rn=1 and c.row_id=a.rowid)
      

  2.   

    请问  hebo2005  b 是什么啊?
      

  3.   

    写个测试过的DELETE FROM temp t1
     WHERE EXISTS (SELECT 1
              FROM (SELECT ROWID
                          ,row_number() over(PARTITION BY jhORDER BY rq DESC) rn
                      FROM temp) t2
             WHERE rn <> 1
                   AND t1.ROWID = t2.ROWID)
    其实和hebo2005的一样...
      

  4.   

     我漏掉了fromdelect *
    from temp a
    where not exists
    (
    select 1
       from 
           (
            select b.rowid row_id,row_number() over(partition by b.jh order by rq desc) rn
             from temp b
           ) c
        wehre c.rn=1 and c.row_id=a.rowid)
      

  5.   

    row_number() over(partition by jh order by rq desc)
      

  6.   

    为什么提示我出现ora-03113:通信通道的文件结束
                    ora-03114:未连接到oracle
     
    这是怎么回事?