这个sql该如何写?应该挺简单的

一个表,有name和number两字段,要删除名字重复的行并保留number最小的行。

假设表名为test
如果你的name 和number能唯一标识一行数据
那么
delete test from (select name,min(number) as min_number from test group by name) as t where test.name != t.name and test.number != t.min_number
可行。

如果name 和 number不能标识一行
那么单条的sql会很复杂,这种情况利用事务最佳。

select distinct name,min(number) from tabletest group by name