Birden Çok Sütunda DISTINCT
Birleşimler genelinde benzersizlik.
Birden Çok Sütunda DISTINCT, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
Neden Birden Çok Sütun
SELECT DISTINCT ifadesinin yinelenen satırları kaldırdığını zaten biliyorsunuz. Peki sorgunuz birden çok sütun döndürdüğünde “yinelenen” ne anlama gelir?
Bir satır, yalnızca seçilen her sütun başka bir satırdakiyle aynı değere sahip olduğunda yinelenen kabul edilir. Tek bir sütun bile farklıysa her iki satır da korunur.
Örnek Tablo: Siparişler
Üzerinde denemeler yapmak için küçük bir siparişler tablosu oluşturalım. Bu tablo, hangi müşterinin hangi kategoriden ve hangi ülkeden alışveriş yaptığını saklar.
CREATE TABLE orders (
id INTEGER,
customer VARCHAR(50),
category VARCHAR(50),
country VARCHAR(50)
);
INSERT INTO orders VALUES
(1, 'Alice', 'Electronics', 'US'),
(2, 'Alice', 'Books', 'US'),
(3, 'Bob', 'Electronics', 'UK'),
(4, 'Alice', 'Electronics', 'US'),
(5, 'Bob', 'Electronics', 'UK'),
(6, 'Carol', 'Clothing', 'CA');Tek Sütunda DISTINCT
Kısa bir hatırlatma: DISTINCT'i tek bir sütunda kullanmak, yalnızca o sütundaki her benzersiz değeri döndürür.
Burada, altı sipariş olmasına rağmen yalnızca üç satırla tüm benzersiz müşteri adlarını elde ediyoruz.
SELECT DISTINCT customer
FROM orders;İki Sütunda DISTINCT
Şimdi ikinci bir sütun ekleyin. DISTINCT anahtar sözcüğü hâlâ yalnızca bir kez, SELECT ifadesinin hemen arkasında yer alır. Veritabanı her benzersiz (müşteri, kategori) çiftini bir satır olarak ele alır.
Alice iki kez görünür: bir kez Elektronik, bir kez de Kitaplar için; çünkü bunlar iki farklı birleşimdir.
SELECT DISTINCT customer, category
FROM orders;Benzersizlik Nasıl Denetlenir
Veritabanı satırların tamamının görünümlerini karşılaştırır. DISTINCT'in bir satırı kaldırabilmesi için SELECT listesindeki tüm sütunların daha önce görülen bir satırla tamamen eşleşmesi gerekir.
Siparişler tablomuzda 3. ve 5. satırlar her üç sütunda da (Bob, Elektronik, UK) tamamen eşleşir; bu nedenle satırlardan biri kaldırılır.
SELECT DISTINCT customer, category, country
FROM orders;
-- Row (Bob, Electronics, UK) appears only once
-- even though it occurs on rows 3 and 5Kısmi Eşleşme Kaldırılmaz
Alice'in kategori = Elektronik olan iki satırı vardır; ancak her ikisinde de ülke = US değerleri bulunur. Üç sütunun tümü seçildiğinde bu iki özgün satır aynıdır ve yalnızca biri kalır.
Seçimi değiştirirseniz benzersizlik sınaması da değişir.
-- Select only customer + country
-- (Alice, US) appears twice in the table but DISTINCT keeps it once
SELECT DISTINCT customer, country
FROM orders;
-- Now add category back — uniqueness recalculated
SELECT DISTINCT customer, category, country
FROM orders;Gerçek Dünya Kullanım Örneği: Benzersiz Çiftler
Yaygın bir örüntü, iki özniteliğin her benzersiz birleşimini bulmaktır — örneğin, her satışın kaç kez gerçekleştiğinden bağımsız olarak hangi ürün kategorilerinin hangi ülkelerde satıldığını belirlemek.
SELECT DISTINCT category, country
FROM orders
ORDER BY category, country;DISTINCT ve WHERE Birlikte Kullanımı
Önce satırları WHERE ile filtreleyebilir, ardından DISTINCT ile filtrelenmiş sonuçtaki yinelenenleri kaldırabilirsiniz. İki yan tümce bağımsız çalışır — WHERE veriyi daraltır, DISTINCT yinelenenleri kaldırır.
SELECT DISTINCT customer, category
FROM orders
WHERE country = 'US';DISTINCT ve GROUP BY Karşılaştırması
Benzersiz kombinasyonları elde etmenin eşdeğer yolu GROUP BY kullanmaktır. Her iki yaklaşım da yalnızca yinelenenleri kaldırma durumunda aynı sonucu üretir. Fark, toplama işlemlerine ihtiyaç duyduğunuzda ortaya çıkar: GROUP BY, COUNT(*), SUM() vb. eklemenizi sağlarken DISTINCT bunu sağlamaz.
-- Using DISTINCT
SELECT DISTINCT customer, category
FROM orders;
-- Equivalent using GROUP BY
SELECT customer, category
FROM orders
GROUP BY customer, category;Benzersiz Kombinasyonları Sayma
Çok sütunlu DISTINCT'i bir alt sorgunun içine sarmak, kaç benzersiz kombinasyon bulunduğunu saymanızı sağlar. Bu, verilerinizdeki çeşitliliği ölçmenin kullanışlı bir yoludur.
SELECT COUNT(*) AS unique_customer_category_pairs
FROM (
SELECT DISTINCT customer, category
FROM orders
) AS deduped;Yaygın Hata: DISTINCT Tüm Sütunlara Uygulanır
Sık karşılaşılan bir yanlış kanı, DISTINCT'in yalnızca listelenen ilk sütuna uygulandığıdır. Öyle değildir. DISTINCT, seçilen tüm sütunların oluşturduğu satırın tamamını her zaman dikkate alır.
DISTINCT'i yalnızca bazı sütunlara uygulayıp diğerlerindeki yinelenenleri koruyamazsınız — bunun için ROW_NUMBER() gibi pencere işlevlerine ihtiyacınız vardır.
-- This does NOT give distinct customers with any category
-- It gives distinct (customer, category) pairs
SELECT DISTINCT customer, category
FROM orders;
-- If you want one row per customer (any category), use:
SELECT customer, MIN(category) AS sample_category
FROM orders
GROUP BY customer;Kısa Kontrol
DISTINCT'in birden çok sütundaki işleyişini sınayın.
Ders Özeti
Harika çalıştınız! Birden çok sütunda DISTINCT kullanımı hakkında öğrendikleriniz:
- DISTINCT tüm satıra uygulanır — seçilen tüm sütunlar birlikte denetlenir.
- Bir satır, yalnızca her sütunu daha önce görülmüş bir satırla tam olarak eşleştiğinde elenir.
- SELECT listesinden sütun eklemek veya çıkarmak, hangi satırların yinelenen kabul edildiğini değiştirir.
- DISTINCT'i WHERE ve ORDER BY ile serbestçe birleştirebilirsiniz.
- GROUP BY eşdeğer bir alternatiftir ve toplama işlemlerine de ihtiyaç duyduğunuzda gereklidir.
Çok sütunlu DISTINCT'te ustalaşmak, her veri kümesindeki benzersiz kombinasyonları verimli biçimde keşfetmenizi sağlar.
Sıkça Sorulan Sorular
“Birden Çok Sütunda DISTINCT” dersi ücretsiz mi?
Evet — “Birden Çok Sütunda DISTINCT” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“Birden Çok Sütunda DISTINCT” dersinde ne öğreneceğim?
Birleşimler genelinde benzersizlik. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Birden Çok Sütunda DISTINCT” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- SELECT DISTINCT Temelleri
- Birden Çok Sütunda DISTINCT
- PostgreSQL DISTINCT ON
- Benzersiz Değerleri Sayma