sql删除表中某个字段的重复数据,取较大者

笔者有段时间,有毒不知道删除表中某个字段的重复数据,取较大者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中较小的值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。