SQL Duplicate Kayıtları Tespit Etme

0 Yanıt 1 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
SQL Duplicate Kayıtları Tespit Etme

Veritabanlarındaki duplicate (tekrarlayan) kayıtlar, genellikle veri bütünlüğünü bozan ve analizleri zorlaştıran ciddi problemlerden biridir. Bu nedenle, duplicate kayıtların tespiti ve temizlenmesi, veri yönetimi açısından kritik öneme sahiptir. SQL kullanarak duplicate kayıtları bulmak, genellikle belirli alanlar veya alan kombinasyonlarında tekrarları saptamak üzere yapılandırılır.

İlk olarak, duplicate kayıtların tanımını netleştirmek gerekir. Bir tabloda aynı değerleri taşıyan birden fazla satır olduğunda, bu satırlar duplicate kabul edilir. Örneğin, kullanıcı tablosunda aynı email adresine sahip birden fazla kayıt varsa, bunlar duplicate olabilir. Bu durumda, aşağıdaki sorgu en temel haliyle duplicate kayıtları tespit eder:

KOD
12345
SELECT email, COUNT(*) AS toplam
FROM users
GROUP BY email
HAVING COUNT(*) > 1;


Burada, GROUP BY ile belirlenen alanlar üzerinden aynı değere sahip satırlar gruplanır ve HAVING koşulu ile en az iki kez tekrar edenler listelenir. Bu sorgu, hangi alanlarda duplicate olduğunu gösterir.

Daha sonra, duplicate kayıtların tamamını görmek veya detaylı incelemek için aşağıdaki gibi bir sorgu kullanılabilir:

KOD
123456789
SELECT *
FROM users u
WHERE EXISTS (
    SELECT 1
    FROM users u2
    WHERE u.email = u2.email
      AND u.id  u2.id
);


Bu sorgu, aynı email adresine sahip ve farklı id'lere sahip satırları getirir. Böylece, duplicate olan tüm satırlar detaylı şekilde görüntülenir. Alternatif olarak, ROW_NUMBER() fonksiyonunu kullanarak da duplicate'ları belirlemek mümkündür:

KOD
12345678
WITH Ranked AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) AS rn
    FROM users
)
SELECT *
FROM Ranked
WHERE rn > 1;


Bu yöntem, duplicate satırların her bir setinde yalnızca bir temsilci bırakıp diğerlerini listelemeye imkan tanır. Böylece, duplicate kayıtları kolayca tanımlayıp gerekli işlemi yapabilirsiniz.

Duplicate kayıtların tespiti, veri temizleme ve bütünlük sağlama sürecinin ilk adımıdır. Bu sayede, veri analizleri ve raporlamalar daha doğru ve güvenilir hale gelir. Bu teknikler, büyük veri ortamlarında ve sık güncellenen veritabanlarında özellikle faydalıdır.

Kendi veritabanınızda duplicate kayıtları tespit ederken, kullanılacak alanlara ve ihtiyaçlara göre sorguları uyarlamak önemlidir.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 5, Üyeler: 5, Misafirler: 0)
Toplam: 5 (üyeler: 5, misafirler: 0)
0 alıntı seçildi