Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie lösche ich doppelte Zeilen und behalte die Zeile mit dem höheren Wert?

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

Demo:http://rextester.com/RERGD32491

Dadurch werden nur Zeilen mit dem höchsten Wert in A4 beibehalten pro A3 . Es ist möglich, dass zwei Zeilen mit dem gleichen Wert in A3 sind denselben höchsten Wert in A4 haben . Da Sie nicht angegeben haben, was in diesem Fall zu tun ist - Beide Zeilen werden beibehalten.