我正在尝试从数据库中删除孤立的行。假设我有这张桌子t:
add
我正在尝试根据最旧的record_date删除重复的条目,同时评估名称和uniqueid以确保它们是实际的重复项(不是仅基于名称的重复项)。不仅仅基于唯一标识进行简单评估的问题在于,某些行的唯一标识具有空值。因此,在示例表中,我想删除第一行和最后一行。
答案 0 :(得分:0)
我认为您正在寻找max()
,并且不想考虑null唯一标识,因此请使用where来过滤null值
name,max(record_date),uniqueid from table_name
where uniqueid is not null
group by name,uniqueid
答案 1 :(得分:0)
您可以在下面尝试-使用聚集和group by
和where子句来过滤null uniqueid
select name,uniqueid,max(record_date)
from tablename
where uniqueid is not null
group by name,uniqueid
答案 2 :(得分:0)
您可以使用img src="http://localhost/mikelawson/zeco/pouvoir 046.jpg"
alt="mikelawson/zeco/pouvoir 046""
:
delete
注意:以上内容仅保留名称/唯一标识对的最新记录。
如果您要查询中的唯一行,我建议:
delete from t
where t.record_date < (select max(t2.record_date)
from t t2
where t2.name = t.name and
t2.uniqueid = t.uniqueid
);