select * from tbname where col2 in(
select min(col2) from tbname group by col1);

解决方案 »

  1.   

    select  a,b from (select a,b ,rank() over (partition by a order by rowid ) rank  
    from tbl ) t where rank=1
      

  2.   

    Tobzszp(www.bzszp.533.net) 
    这个样子只有一笔记录了
      

  3.   

    可是min(col2)是对col2中求text中最小的值,
     001       C812FF53-EC23-4D35-B8FE-8188CA86E971
            001       EFF17B54-77CB-48D7-9D1D-966674B0E9AC
            001       72E969FC-3B6A-449F-9168-446C330C9FBD
            002       E74F0E3D-A5A7-409E-BB98-A1361AFEC605
            002       7FD6F870-7728-4973-A512-7CBA47A06CE2
            003       25E308C9-D63A-4190-8686-46C87547C5BF
            003       35E508C9-D63A-4190-8686-46C87547C5BF
            004       40FBAB26-CAC4-4171-B848-4E2C36FF0B91
    这个记录是按照时间排序号的。
      

  4.   

    必须要有其他的字段来决定是每个id的第一列. 比如最小的时间等,要么就用rowid来解决.
      

  5.   

    你要按先后是吗?就是下面这句了,直接抄去!select * from tbname where rowid in(
    select min(rowid) from tbname group by col1);
      

  6.   

    上面的是对的,要用 rowid 列
      

  7.   

    建议在设计表的时候加上另外的字段来区别,因为UPDATE等操作后会改变行的一些属性.