İpucu

PotgreSQL'de Duplicate Kayıtların Silinmesi

Bir tabloda duplicate (tekrarlı) kayıtların silinmesi için aşağıdaki gibi bir sorgu çalıştırabilirsiniz:
DELETE FROM tablo_adi WHERE 
id IN ( SELECT id FROM (SELECT id, ROW_NUMBER() 
OVER (partition BY sutun_adı ORDER BY id) AS rnum 
FROM tablo_adi) t WHERE t.rnum > 1);
Yukarıdaki örnekte id alanına göre en küçük olan değer bırakılmaktadır.
Bu sorgu için https://wiki.postgresql.org/wiki/Deleting_duplicates adresine bakabilirsiniz.
Farklı kriterler kullanabilirsiniz. Örneğin name='Ali' olanlar için duplicated kayıtları silecekseniz aşağıdaki gibi kriteri ekleyebilirsiniz:
DELETE FROM tablo_adi WHERE name='Ali' and
id IN ( SELECT id FROM (SELECT id, ROW_NUMBER() 
OVER (partition BY sutun_adı ORDER BY id) AS rnum 
FROM tablo_adi where name='Ali' ) t WHERE t.rnum > 1);
zafer.teker , 21.04.2020

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir