笔者有段时间,有毒不知道删除表中某个字段的重复数据,取较大者sql怎么写,特地发了篇文章惊醒一下自己。
delete from ac31
where aac310 not in
( select max310 from
( select max(aac310) as max310
from ac31
group by aac001
)b
);
解析:由内而外看,最里层select语句以aac001字段分组,从ac31表中筛选数据,取aac310列值较大者,取别名max310。中间层select语句,筛选出max310。最外层select语句,将ac31表中aac310字段不在max310中的行删掉,即删除aac310中较小的值。