使用特定列删除SQL中的重复项

时间:2015-04-20 03:34:23

标签: mysql sql duplicate-removal

我的要求是使用特定列删除sql查询中的重复项(即类似于删除MS Excel中的重复选项。)

例如:我的查询o / p是8列,但是要删除3列。使用以下8列

date,name, dept_name,city,phne_no,country,gender,age

我需要删除重复的w.r.t

name, city, phne_no

这可能在sql中吗?请注意,我无权删除表中的数据,因此我只能提取。请帮助我。

1 个答案:

答案 0 :(得分:0)

例如,如果另一行具有相同的名称,城市和phne_no delete,但有更新的日期,则可EXISTS行:

   delete from tablename t1 where exists (select 1 from tablename t2
                                           where t1.name = t2.name
                                             and t1.city = t2.city
                                             and t1.phne_no = t2.phne_no
                                             and t2.date > t1.date)

修改 如果您只想select较新的行,请使用NOT EXISTS查找没有任何新版“重复”的行:

select *
from tablename t1
where not exists (select 1 from tablename t2
                  where t1.name = t2.name
                    and t1.city = t2.city
                    and t1.phne_no = t2.phne_no
                    and t2.date > t1.date)