Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment supprimer les lignes en double et conserver la ligne avec la valeur la plus élevée ?

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

Démo :http://rextester.com/RERGD32491

Cela ne conservera que les lignes avec la valeur la plus élevée en A4 par A3 . Il est possible que deux lignes avec la même valeur en A3 ont la même valeur la plus élevée en A4 . Puisque vous n'avez pas spécifié quoi faire dans ce cas, les deux lignes seront conservées.