sql >> Database teknologi >  >> RDS >> Mysql

Hvordan sletter jeg dublerede rækker og beholder rækken med højere værdi?

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

Dette vil kun beholde rækker med den højeste værdi i A4 pr. A3 . Det er muligt, at to rækker med samme værdi i A3 har den samme højeste værdi i A4 . Da du ikke har angivet, hvad du skal gøre i det tilfælde - vil begge rækker blive bevaret.




  1. Anvendelse af en unik datobegrænsning på TIMESTAMP-kolonnen i postgresql

  2. MYSQL:Kan du trække resultater, der matcher som 3 ud af 4 udtryk?

  3. Hvordan styrer vi dynamisk rækkefølge efter et felt i en tabel?

  4. Data for lange til kolonne i Django på MySQL