1. 程式人生 > >SQL去重

SQL去重

pre 去重 復數 del nbsp col cnblogs where 記錄

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)

SQL去重