我的要求是使用特定列删除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中吗?请注意,我无权删除表中的数据,因此我只能提取。请帮助我。
答案 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)