select id,title,content from (select id,rank() over(partition by id order by title) r,title,content from table) where r=1

解决方案 »

  1.   

    select id ,min(title),min(content)
    from table
    group by id 
      

  2.   

    select a.* 
    from tab_name a 
    where not exists(select * from tab_name where id=a.id and title<a.title)
      

  3.   

    select t.id,
               t.title,
               t.content
    from
    (select A.*,
           rank() over(partition by id order by title)as r
     from A
    )t
    where t.r=1
      

  4.   

    waterfirer(水清) 的是对的SQL> select id,title,content from (select id,rank() over(partition by id order b
    y title) r,title,content from test) where r=1
      2  ;
            ID TITLE      CONTENT
    ---------- ---------- ----------
             1 sadf       asdf
             2 3323       3wewer
             3 sdff       fdsfsdSQL> select * from test;
            ID TITLE      CONTENT
    ---------- ---------- ----------
             1 sadf       asdf
             1 sdfas      sdfsfd
             2 3323       3wewer
             2 grerrwe    sdffasdf
             3 sdff       fdsfsdSQL>
      

  5.   

    至waterfirer(水清)
    考虑记录重复的情况:
    1 sadf       asdf
    1 sdfas      sdfsfd   <----A
    2 3323       3wewer   <----B
    1 sdfas      sdfsfd   <----A
    2 3323       3wewer   <----B
    2 grerrwe    sdffasdf
    3 sdff       fdsfsd执行后也是有重复
      

  6.   

    那就把水清的rank改为row_number就没有重复的了。