sql >> Databasteknik >  >> RDS >> Mysql

Hur tar jag bort dubbletter av rader och behåller raden med högre värde?

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

Detta kommer bara att behålla rader med det högsta värdet i A4 enligt A3 . Det är möjligt att två rader med samma värde i A3 har samma högsta värde i A4 . Eftersom du inte angav vad du skulle göra i så fall - Båda raderna kommer att behållas.




  1. Rails ActiveRecord - hur man hämtar poster mellan två datum

  2. PostgreSQL:Ge alla behörigheter till en användare på en PostgreSQL-databas

  3. statement.execute() returnerar fel med snedstreck i slutet av PL/SQL

  4. Paginering för att visa maxvärde och begränsa resten