1. 程式人生 > >postgresql刪除重複記錄的一些相關sql語句

postgresql刪除重複記錄的一些相關sql語句

自己在做postgresql中作的正確的語法,SQL語句

原始表test_sql圖片1

1、查詢重複欄位的重複數select distinct (f1,f2,f3), count(*) from test_sql group by(f1,f2,f3)

結果圖片2

2、select distinct (f1,f2,f3), count(*) from test_sql group by(f1,f2,f3) having count(*) >1

結果圖片3

3、select distinct f1,f2,f3, count(*) from test_sql group by (f1,f2,f3)having count(*) >1 這樣報錯,由於有多個欄位distinct後加括號才能對

4、select (f1,f2,f3),min(id) from test_sql group by (f1,f2,f3) havingcount(*) >1 前面的(f1,f2,f3)是不能去括號的,也不能單獨查詢1個,因為group by (f1,f2,f3),相當於把(f1,f2,f3)作為1個欄位了。

結果圖片4

5、select * from test_sql where id in (select min(id) from test_sqlgroup by (f1,f2,f3) having count(*) >1)

結果圖片5

6、select * from test_sql where id in (select min(id) from test_sqlgroup by (f1,f2,f3))

結果圖片6

7、delete from test_sql where id not in (select min(id) from test_sqlgroup by (f1,f2,f3))

結果圖片7