Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como faço para excluir linhas duplicadas e manter a linha com valor mais alto?

delete t1 
from some_table t1
join some_table t2
  on  t2.a3 = t1.a3
  and t2.a4 > t1.a4;

Demonstração:http://rextester.com/RERGD32491

Isso manterá apenas as linhas com o valor mais alto em A4 por A3 . É possível que duas linhas com o mesmo valor em A3 têm o mesmo valor mais alto em A4 . Como você não especificou o que fazer nesse caso - Ambas as linhas serão mantidas.