0Pricing
SQL Academy · Ders

SELECT DISTINCT Temelleri

Yalnızca benzersiz satırları döndürün.

SELECT DISTINCT Temelleri, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 1. 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.

Yinelenenler Neden Oluşur

Tablolarda sıklıkla tekrarlanan değerler bulunur. Bir customers tablosunda aynı city değeri binlerce satırda yer alabilir. Yalnızca benzersiz değerler kümesiyle ilgileniyorsanız, normal SELECT tekrarlar dahil her satırı döndürür.

SELECT DISTINCT, birbirinin aynısı olan satırları tek bir satıra indirger. Bu derste yalnızca benzersiz sonuçları döndürmenin temellerini öğreneceksiniz.

SELECT city FROM customers;
-- Returns one row per customer, with many repeated cities

DISTINCT Anahtar Sözcüğü

DISTINCT, SELECT ifadesinin hemen arkasına gelir. Sonuç kümesindeki yinelenen satırları kaldırır ve seçilen sütunların her benzersiz birleşiminden yalnızca bir kopya bırakır.

SELECT DISTINCT city
FROM customers;
-- One row per unique city

DISTINCT Tüm Satıra Uygulanır

Yaygın bir yanılgı, DISTINCT ifadesinin tek bir sütuna uygulandığıdır. Oysa seçilen satırın tamamına uygulanır. Listelediğiniz her sütun, iki satırın yinelenen olup olmadığına karar verilmesine katkıda bulunur.

Aşağıda satırlar yalnızca city değerine göre tekilleştirilir; çünkü seçilen tek sütun odur.

SELECT DISTINCT country
FROM customers;
-- Unique countries across all customers

Örnek Veriler

Küçük bir orders tablosu düşünün. Yinelenen status ve country değerlerine dikkat edin. Ders boyunca bu yapıyı kullanacağız.

  • id=1, status='paid', country='US'
  • id=2, status='paid', country='US'
  • id=3, status='shipped', country='DE'
  • id=4, status='paid', country='DE'
CREATE TABLE orders (
  id         int PRIMARY KEY,
  status     text,
  country    text,
  amount     numeric(10,2)
);

Tek Sütunda DISTINCT

Örnek verilerden DISTINCT status seçildiğinde benzersiz durum değerleri, yani paid ve shipped döndürülür. Dört satır iki satıra iner.

SELECT DISTINCT status
FROM orders;
-- paid
-- shipped

NULL Tek Değer Olarak Ele Alınır

NULL normalde hiçbir şeye, kendisine bile, eşit olmasa da DISTINCT tüm NULL değerlerini tek bir grup olarak ele alır. Bir sütunda çok sayıda NULL satırı varsa tekilleştirilmiş sonuçta tam olarak bir NULL elde edersiniz.

SELECT DISTINCT shipped_at
FROM orders;
-- All NULL shipped_at rows collapse into a single NULL row

DISTINCT ile ORDER BY

Benzersiz değerleri genellikle sıralanmış olarak görmek istersiniz. DISTINCT önce benzersiz kümeyi oluşturur, ardından ORDER BY bu kümeyi sıralar. DISTINCT kullanılırken ORDER BY içindeki her sütun SELECT listesinde de yer almalıdır.

SELECT DISTINCT country
FROM orders
ORDER BY country;
-- DE
-- US

DISTINCT ile GROUP BY Karşılaştırması

SELECT DISTINCT col ve SELECT col GROUP BY col aynı benzersiz satırları üretir. Yalnızca benzersiz değerleri istediğinizde DISTINCT kullanın; grup başına COUNT gibi toplulaştırma işlevlerine de ihtiyacınız olduğunda GROUP BY kullanın.

-- These two return the same set of countries:
SELECT DISTINCT country FROM orders;

SELECT country FROM orders
GROUP BY country;

DISTINCT Maliyetlidir

Yinelenenleri kaldırmak ücretsiz değildir. Veritabanı, benzersiz satırları bulmak için aday satırların tümünü sıralamalı veya özetlemelidir. Büyük tablolarda bu işlem CPU ve bellek kullanımını artırır; bu nedenle DISTINCT ifadesini yalnızca gerçekten benzersizliğe ihtiyaç duyduğunuzda kullanın.

-- Avoid blind DISTINCT on every query.
-- If the column is already unique (e.g. a PRIMARY KEY),
-- DISTINCT does nothing useful but still costs work:
SELECT DISTINCT id FROM orders;  -- id is already unique

İfadelerde DISTINCT

DISTINCT ifadesini yalnızca ham bir sütuna değil, hesaplanan bir ifadeye de uygulayabilirsiniz. Veritabanı ifadeyi her satır için değerlendirir ve ardından sonuçları tekilleştirir.

SELECT DISTINCT upper(country) AS country_code
FROM orders
ORDER BY country_code;
-- DE
-- US

Seçim Listesi Oluşturma

DISTINCT için pratik bir kullanım alanı, bir uygulamadaki açılır listeyi veya filtre listesini doldurmaktır: verilerde o anda bulunan tüm olası seçenekleri kullanıcıya göstermek için benzersiz durumları çekebilirsiniz.

SELECT DISTINCT status
FROM orders
ORDER BY status;
-- paid
-- shipped

Hızlı Sınama

DISTINCT anahtar sözcüğü nereye gelir ve neyi tekilleştirir?

Özet

SELECT DISTINCT kullanımının temellerini öğrendiniz:

  • Sonuç kümesindeki yinelenen satırları kaldırır.
  • Tek bir sütuna değil, seçilen satırın tamamına uygulanır.
  • Tüm NULL değerleri tek bir değerde birleşir.
  • ORDER BY tekilleştirmeden sonra çalışır; içerdiği sütunlar seçilmelidir.
  • Ek işlem maliyeti getirir; bu nedenle yalnızca gerektiğinde kullanın.

Sırada: DISTINCT kullanımını birden çok sütuna genişletmek.

SELECT DISTINCT status
FROM orders
ORDER BY status;

Sıkça Sorulan Sorular

“SELECT DISTINCT Temelleri” dersi ücretsiz mi?

Evet — “SELECT DISTINCT Temelleri” 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.

“SELECT DISTINCT Temelleri” dersinde ne öğreneceğim?

Yalnızca benzersiz satırları döndü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 1. dersidir.

“SELECT DISTINCT Temelleri” 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

  1. SELECT DISTINCT Temelleri
  2. Birden Çok Sütunda DISTINCT
  3. PostgreSQL DISTINCT ON
  4. Benzersiz Değerleri Sayma
← SQL Academy Sayfasına Dön