2017-03-22 50 views

回答

1

這將刪除所有,但最高值max_val每個rem_id,或通過刪除那些具有較高id相同max_val的倍數:

delete t 
from t 
    left join t as i 
    on i.rem_id = t.rem_id 
    and (i.max_val > t.max_val 
     or (i.max_val = t.max_val and i.id < t.id) 
    ) 
where i.id is not null; 

rextester演示:http://rextester.com/QKIK17666

回報:

+----+--------+---------+ 
| id | rem_id | max_val | 
+----+--------+---------+ 
| 1 |  1 |  7 | 
| 2 |  2 |  6 | 
| 3 |  3 |  1 | 
+----+--------+---------+ 
+1

@Phalhal樂意幫忙! – SqlZim

+0

您無法在FROM子句中爲更新指定目標表'userRank'。我得到這個錯誤 – Puhal

+0

@Phalhal轉換爲自我連接而不是'exists()',我的道歉。 – SqlZim

相關問題