请问如何将一个表中的所有相同的数据删除,但要保留一个数量最多的那条数据。在线等

happynet 2003-06-11 03:28:09
我有一个表 tablename

字段: a | b | c | d | e 五个,我想删除相同的记录,但是要求必须其中三个字段相同才算是完全相同的。

就假设是:a b c三个字段内容相同,d是数量,保留最大的那一条数据。

怎么写这个SQL语句呢?
...全文
33 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gamehero 2003-06-12
  • 打赏
  • 举报
回复
厉害~!
happynet 2003-06-12
  • 打赏
  • 举报
回复
我想到了一个省事写法:

delete from tablename where d not in
(select max(d) from tablename where group by a,b,c)
forestyang 2003-06-11
  • 打赏
  • 举报
回复
如果你的表里还有一个自增ID字段或者唯一字段的话(这里假设是ID)可以这样:

delete from tablename where ID in
(select ID from tablename where a=b and a=c and d < (select max(d) from tablename))
tigerwen01 2003-06-11
  • 打赏
  • 举报
回复
把数量最多的取出来放在一个临时表#Temp等把所有数据相同的记录删了在放回去,这样做是为了防止误删,为安全着想。
summercat 2003-06-11
  • 打赏
  • 举报
回复
用笨方法不行吗?先选正个表,然后该个判断,所有三个的相等,就清空...

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧