我需要从下表中删除半重复记录
ID PID SCORE 1 1 50 2 33 20 3 1 90 4 5 55 5 7 11 6 22 34
对于存在的任何重复PID,我想删除最低得分记录。在上面的示例中,将删除ID 1。我试图提出一种不使用循环的方法,但确实很挣扎。
任何帮助,将不胜感激。
谢谢
DELETE t.* FROM Table1 t JOIN (SELECT pid, MIN(score) minScore, MAX(id) maxId FROM Table1 GROUP BY pid) t1 ON t.pid = t1.pid AND t.score = t1.minScore AND t.id < t1.maxId