Yinelenen Kayıtları Seçin ve Silin
SQL Server’da “Select” ve “Delete” komutlarını kullanarak, yinelenen (duplicate) kayıtları seçebilir ve silebiliriz. Bu işlem, veritabanında aynı verilerin birden fazla kez bulunduğu durumlarda gereklidir ve aşağıdaki avantajlara sahip olabilir:
Özetle, SQL Server’da Select ve Delete komutları ile yinelenen kayıtları seçme ve silme işlemi, veri bütünlüğünü koruma, veri depolama alanını tasarruf etme, veri doğruluğunu arttırma, performansı arttırma ve veri analitiği için doğru sonuçlar elde etme gibi avantajlara sahip olabilir.
Şimdi size bunu örneklendirelim.
İçinde yinelenen veriler bulunan basit bir tablo oluşturalım. Tempdb veri tabanında bu kodları kullanarak örnek tablo oluşturabilirsiniz.
USE tempdb
GO
CREATE TABLE TestTable (ID INT, NameCol VARCHAR (100))
GO
INSERT INTO TestTable (ID, NameCol)
select 1, ‘First’
UNION ALL
select 2, ‘Second’
UNION ALL
select 3, ‘Second’
UNION ALL
select 4, ‘Second’
UNION ALL
select 5, ‘Second’
UNION ALL
select 6, ‘Third’
GO
–Selecting Data
Select *
From TestTable
GO
–Detecting Data
SELECT NameCol, COUNT(*) TotalCount
FROM TestTable
GROUP BY NameCol
HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC
GO
–Deleting Duplicate
DELETE
FROM TestTable
WHERE ID NOT IN
(
SELECT MAX(ID)
FROM TestTable
GROUP BY NameCol)
GO
–Selecting Data
SELECT*
FROM TestTable
GO
DROP TABLE TestTable
GO
İlk önce aşağıdaki resimde olan kısmı seçip tablomuzu oluşturalım.
Bu durumumuzda aşağıda seçtiğimiz kısmı execute ettikten sonra, bu sütunun kayıtların birçok kez girildiğini görebilirsiniz.
Yinelenen kayıtları ve bunların sayımını test tablosundan algılayacak komut dosyasını çalıştıralım. Ve aşağıdaki sütunda gördüğünüz gibi ‘second’ değeri, 4 defa girilmiştir.
Aşağıdaki bu sorgu en son eklenen kayıt dışındaki tüm yinelenen kayıtları silecektir.
Ve son olarak aşağıdaki sorguyu bir kez daha seçelim. Bu işlemin sonucunda verilerin silindiğini görebilirsiniz.
Son olarak aşağıdaki kodunu kullanarak tablonun içindeki tüm verileri silebilirsiniz.
DROP TABLE TestTable
Size ve Veritabanlarınıza Yardımcı Olmak İçin Bekliyoruz!