2016-05-05 86 views
0

我有一個表:PostgreSQL的查詢,刪除重複的條目表中的

id product id merchant id price  upc 
1 124   2   2000000 1234XDE 
2 124   2   200000  1234XDE 
3 124   2   200000  1234XDE 
4 124   2   200000  1234XDE 
5 124   2   200000  ASDER36 
6 134   1   300  ASERT56 
7 134   2   300  ASERT56 

我想從表中刪除所有的多個條目。

Delete from 
table where id not in (Select min(id) from table group by(merchant id)) 

但沒有成功。我想結果表爲:

id product id merchant id price upc 
1 124   2   2000000 1234XDE 
5 124   2   2000000 ASDER36 
6 134   1   300  ASERT56 
7 134   2   300  ASERT56 

有人可以幫我寫這個查詢。

+0

沒有它不是解決我的問題 –

+0

請點擊這裏找到了答案:http://stackoverflow.com/questions/1746213/how -to-delete-duplicate-entries –

+1

當然,您的查詢不起作用。你的表中沒有「薪金」欄。請向我們展示您正在使用的_real_查詢。你也沒有告訴我們表格的唯一鍵應該是什麼。它看起來像'(product_id,merchant_id,upc)'。你在這張桌子上還有任何**真正**獨特的專欄嗎? 'id'列也包含重複項,不適合區分行。 –

回答

1

這應做到:

delete from flash 
where id not in (select min(id) 
       from flash 
       group by product_id, merchant_id, upc); 

SQLFiddle例如:http://sqlfiddle.com/#!15/9edef/1

+0

你能告訴我如何在django orm中做同樣的事情嗎? –