sql去重


現在有一張表t(id,name),id是主鍵,name可以重復,現在要刪除重復數據,保留id最小的數據。請寫出SQL。

表:t

id        name

1        張三

2        張三

3        李四

4        李四

5        李四

分析:

首先通過名字分組,選出每組id最小記錄。然后刪除這些記錄以外的所有數據。

1:select min(id) id,name from t groud by name.

重點:min(),groud by, not exists()

完整的SQL:

delete from t a where not exists( select * from ( select min(id) ,name from t group by name) b where a.id=b.id)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM