比如,我有一张表,如下:
id    user    pass    time          ip
1     小张    123     2011-07-08    8.8.8.8
2     小李    234     2011-07-09    7.7.7.7
3     小李    234     2011-07-09    7.7.7.7
4     小张    124     2011-07-10    8.8.8.8是这样的,user,pass,ip这3个字段一定要不相同才能被保留
其中id为1和4的user是一样的,但是其中pass不一样,可以保留,但是id为2和3,三个字段都一样,我想只保留最后的一条记录,最后的结果是:
id    user    pass    time          ip
1     小张    123     2011-07-08    8.8.8.8
3     小李    234     2011-07-09    7.7.7.7
4     小张    124     2011-07-10    8.8.8.8可以用group by 分组,可往往他得到的数据是最前面的,而不是最后的,有哪位高手能帮我想个sql语句,并且执行效率高,表有10万条记录,其中重复数据很多。谢谢,并且有撒建议给我,比如如何写触发器,在进库的时候可以过滤掉重复数据,保留最新的。等等等~

解决方案 »

  1.   

    a419891509 
      '截至2011-08-28 22:10:37  用户结帖率0.00%
    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
    http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
    http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html8、如何给分和结贴?
    http://community.csdn.net/Help/HelpCenter.htm#结帖
      

  2.   

    Delete a from我有一张表 a left join (select max(id) as id from我有一张表 group by user,pass,ip) b on a.id=b.id
    Where b.id is null;
      

  3.   

    select  *
    from tb A
    where not exist (select 1 from tb where A.id<id and A.user=user and A.pass=pass and A.ip=ip)
      

  4.   

    csdn论坛如何结贴??
    点击结贴,转到另一个界面,可是给各位设置好分数后,点击确定结贴,提示“结贴给分与点数不符,请重新分配”,这是怎么回事?该如何解决??