Verileri Gruplara Ayırma ve Etiketleme
Değerleri kategorilere dönüştürün.
Verileri Gruplara Ayırma ve Etiketleme, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 3. 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.
Kategorilere Ayırma Nedir?
Kategorilere ayırma, ham değerleri adlandırılmış kategoriler halinde gruplamak; sayıları, tarihleri veya kodları insanların kolayca okuyabileceği etiketlere dönüştürmek demektir.
87 puanını göstermek yerine "İyi" gösterirsiniz. 14 yaşını göstermek yerine "Ergen" gösterirsiniz. Bunun için temel aracınız CASE ifadesidir.
Örnek Tablo: Siparişler
Bu ders boyunca siparişler tablosunu kullanacağız. Her satırda bir sipariş tutarı ve bir durum kodu bulunur.
Üzerinde çalışacağımız verileri görmek için aşağıdaki sorguyu çalıştırın.
SELECT id, customer, amount, status
FROM orders
ORDER BY id;CASE WHEN ile Etiketleme
En basit kategorilere ayırma örüntüsü, bir koşulu denetleyip bir etiket atamaktır. CASE WHEN ... THEN ... ELSE ... END bloğu her satır için yeni bir dize döndürür.
Burada her siparişi tutarına göre 'Büyük' veya 'Küçük' olarak etiketliyoruz.
SELECT id,
amount,
CASE
WHEN amount >= 500 THEN 'Large'
ELSE 'Small'
END AS order_size
FROM orders;WHEN Zincirleriyle Birden Çok Kategori
İhtiyacınız olduğu kadar çok WHEN yan tümcesi ekleyebilirsiniz. SQL bunları yukarıdan aşağıya denetler ve ilk eşleşmede durur.
Bu örnek, tutarları üç düzeye ayırır: Küçük, Orta ve Büyük.
SELECT id,
amount,
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders;Metin Değerlerini Kategorilere Ayırma
Kategoriler yalnızca sayılar için kullanılmaz. Tam metin değerlerini eşleştirip bunları daha anlaşılır etiketlerle değiştirebilirsiniz.
Burada ham durum kodları olan 'P', 'S' ve 'C', okunabilir sözcüklere dönüştürülür.
SELECT id,
status,
CASE status
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Shipped'
WHEN 'C' THEN 'Cancelled'
ELSE 'Unknown'
END AS status_label
FROM orders;Basit CASE Biçimini Kullanma
Bir sütunu birkaç sabit değerle karşılaştırırken basit CASE biçimi (CASE column WHEN value ...), sütun adını her WHEN yan tümcesinde tekrarlamaktan daha kısa ve okunması daha kolaydır.
Sonuç, aramalı biçimle aynıdır.
SELECT id,
CASE status
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Shipped'
WHEN 'C' THEN 'Cancelled'
ELSE 'Unknown'
END AS status_label
FROM orders;GROUP BY İçinde Kategorilere Ayırma
Bir kategori etiketiniz olduğunda, her kategoriye kaç satırın düştüğünü saymak için bu etikete göre gruplama yapabilirsiniz. CASE ifadesinin tamamını GROUP BY içine yerleştirin.
Bu sorgu, kaç siparişin Küçük, Orta veya Büyük olduğunu gösterir.
SELECT
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier,
COUNT(*) AS total_orders
FROM orders
GROUP BY
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END;Alt Sorgu Diğer Adıyla Kategorilere Ayırma
Uzun bir CASE bloğunu GROUP BY içinde tekrarlamak gereksiz uzunluk oluşturur. Daha temiz bir yaklaşım, ana sorguyu bir alt sorgunun (veya CTE'nin) içine alarak diğer ada doğrudan başvurabilmenizi sağlar.
SELECT order_tier, COUNT(*) AS total_orders
FROM (
SELECT
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders
) AS bucketed
GROUP BY order_tier;Sayısal Kategoriler: Yaş Grupları
Yaş gruplama, kategorilere ayırmanın klasik kullanım alanlarından biridir. Aşağıdaki sorgu, her müşteriyi adlandırılmış bir yaş aralığına atar.
Koşulların en küçükten en büyüğe doğru ilerlediğine dikkat edin — SQL, doğru olan ilk WHEN dalında durur; bu nedenle sıra önemlidir.
SELECT name,
age,
CASE
WHEN age < 13 THEN 'Child'
WHEN age < 18 THEN 'Teen'
WHEN age < 65 THEN 'Adult'
ELSE 'Senior'
END AS age_group
FROM customers;Bir Kategoride NULL Değerlerini Etiketleme
Bir değer NULL ise IS NULL dışındaki hiçbir WHEN koşulu bu değerle eşleşmez. Açık bir denetim yapılmadığında NULL değerleri ELSE dalına düşer.
NULL değerlerine kendi etiketlerini vermek için WHEN column IS NULL yan tümcesini ekleyin.
SELECT id,
amount,
CASE
WHEN amount IS NULL THEN 'No Data'
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders;ORDER BY İçinde Kategorilere Ayırma
Yeni bir sütun eklemeden sıralama önceliğini denetlemek için CASE ifadesini doğrudan ORDER BY içinde de kullanabilirsiniz.
Aşağıdaki örnek, Beklemede olan siparişleri her zaman önce, Kargolanmış siparişleri sonra ve İptal edilmiş siparişleri en son gösterir.
SELECT id, customer, status
FROM orders
ORDER BY
CASE status
WHEN 'P' THEN 1
WHEN 'S' THEN 2
WHEN 'C' THEN 3
ELSE 4
END;Hızlı Kontrol
Verileri CASE ile kategorilere ayırma ve etiketleme konusundaki anlayışınızı sınayın.
Ders Özeti
Harika iş! Verileri kategorilere ayırma ve etiketleme hakkında şunları öğrendiniz:
- Kategorilere ayırma,
CASE WHENkullanarak ham değerleri adlandırılmış kategorilere dönüştürür. WHENyan tümcelerinden oluşan zincirler birden çok kategori oluşturur; SQL ilk eşleşmede durur.- basit CASE biçimi (
CASE col WHEN val), bir sütunu sabit değerlerle karşılaştırırken idealdir. - Her kategorideki satırları saymak için bir
CASEifadesine göre GROUP BY yapabilirsiniz. - NULL değerlerinin anlamlı bir etiket alması için bunları her zaman
WHEN col IS NULLile açıkça işleyin. CASE, özel sıralama önceliği tanımlamak içinORDER BYiçinde de çalışır.
Kategorilere ayırma, ham kodları ve sayıları açık, açıklayıcı etiketlerle değiştirerek raporları çok daha okunabilir hale getirir.
Sıkça Sorulan Sorular
“Verileri Gruplara Ayırma ve Etiketleme” dersi ücretsiz mi?
Evet — “Verileri Gruplara Ayırma ve Etiketleme” 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.
“Verileri Gruplara Ayırma ve Etiketleme” dersinde ne öğreneceğim?
Değerleri kategorilere dönüştürün. 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 3. dersidir.
“Verileri Gruplara Ayırma ve Etiketleme” 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
- CASE İfadesi
- Aranan ve Basit CASE
- Verileri Gruplara Ayırma ve Etiketleme
- ORDER BY ve Toplamlarda CASE