sgsy_2013
xuhanchn
采纳率100%
2016-05-05 08:33

sql去除重复记录问题,要求只用一条select语句

已采纳

我有个表,有些记录属于部分重复,像根据时间去掉重复记录
比如这个表:

t1                 t2          
小明            2015-06-25
小明            2015-09-21
小红            2015-03-01
小花            2015-03-01
小白            2015-03-01

里面的小明那条记录,我只想保留2015-09-21这条最新的记录。

麻烦的是,我只能用一条select语句,不能把另一条记录删掉。
求解

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

6条回答

  • Tiger_Zhao Tiger_Zhao 5年前
    SELECT a.*
      FROM table1 a
     WHERE NOT EXISTS (SELECT *
                         FROM table1 b
                        WHERE b.t1 = a.t1
                          AND b.t2 > a.t2)
    
    点赞 1 评论 复制链接分享
  • tmj3465968 卿安在 5年前

    create table tablename as
    select t1,max(t2) from tablename group by t1;

    点赞 1 评论 复制链接分享
  • w172087242 little_how 5年前

    select * from tablename tn1 where t.t2 = (select max(tn2.t2) from tablename tn2 where tn1.t1=tn2.t1);

    tablename是你的表名,
    如果有帮助,希望结帖哦。

    点赞 1 评论 复制链接分享
  • yshwaishui aramis9895 5年前

    select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)

    点赞 评论 复制链接分享
  • sgsy_2013 xuhanchn 5年前

    谢谢大家了,只能选一个最佳。。。

    点赞 评论 复制链接分享
  • Royal_lr Royal_lr 5年前

    根据最新的时间来进行筛选,,

    点赞 评论 复制链接分享