Ana içeriğe geç
Kesit SQL
Temel · Temeller

Takma adlar (AS) ve DISTINCT

Sütunlara okunur adlar vermek ve tekrarları kaldırmak.

Uygulamada aç, 7 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

AS ile takma ad

Hesaplanmış sütunların adı genelde çirkin olur (price - cost gibi). AS ile sütuna anlamlı bir ad verirsin:

SELECT name AS urun,
       price - cost AS birim_kar
FROM products;

DISTINCT ile tekrarsız değerler

Hangi kategorilerde ürün sattığımızı merak ediyoruz. SELECT category FROM products her ürün için bir satır döndürür. Tekrarları atmak için:

SELECT DISTINCT category
FROM products;

DISTINCT birden fazla sütunla kullanılırsa kombinasyonların tekrarsızını verir:

SELECT DISTINCT status, channel
FROM orders;
DikkatDISTINCT sadece ilk sütuna değil, SELECT listesinin tamamına uygulanır. Ayrıca büyük tablolarda maliyetlidir; tekrar oluşmasının sebebini anlamadan DISTINCT ile “yamamak” kötü bir alışkanlıktır.

Derinleş: DISTINCT nasıl düşünülmeli?

DISTINCT, seçtiğin tüm sütunların birlikte tekrarsız kombinasyonlarını verir; tek bir sütuna uygulanmaz. Aşağıdaki sorgu “her şehir” değil, “her şehir–mutfak çifti” için bir satır döndürür:

SELECT DISTINCT city, cuisine
FROM lk_restaurants
ORDER BY city, cuisine;

COUNT(DISTINCT city) ise farklı şehir sayısını verir. DISTINCT çoğu zaman bir JOIN'in satırları beklenmedik biçimde çoğalttığını gizler: sonuçta tekrar görüyorsan önce nedenini anla, DISTINCT'i yara bandı olarak kullanma.

Alıştırmalara geç (7)