SQL Distinct Kullanımı

Merhabalar, bugün sizlere SQL DISTINCT kullanımından bahsedeceğim. Distinct nedir, nasıl kullanılır? Konuya bu şekilde giriş yaparak başlayalım.

Distinct Nedir?

Veritabanında bulunan bir tablonun alanlarında tekrar eden veriler olabilir. İşte DISTINCT ifadesi, tekrar eden bu kayıtlardan birer örnek olacak şekilde veri çekilmesini sağlar. Tekrar eden kayıtlardan bir tane alarak bunların yanına tekrar etmeyen kayıtları koyar. Ve bu şekilde veri kümesini oluşturur. Tekrarlı kayıtların tekrarsız bir şekilde görünmesini sağlar da diyebiliriz. Tekrarlanan verilerden sadece 1 tanesi getirilir.

Örneğin aşağıdaki tabloda ülke alanındaki ABD, Almanya, İtalya, Fransa ve Japonya verilerinin birden fazla tekrar ettiğini görmekteyiz. Eğer tekrarlanan bu verileri eleyerek her farklı veriden sadece bir adet bulunmasını istiyorsak o zaman DISTINCT ifadesini kullanırız.

Kullanımı aşağıdaki gibidir:

Select DISTINCT alanAdi FROM tabloAdi 

Distinct komutu tek başına kullanılamaz. Mutlaka SELECT ifadesi ile kullanmak gerekir.

tablo: markalar

IDMarkaModelUlke
1FordFiestaABD
2TeslaModel SABD
3BMWSedanAlmanya
4FiatEgea Crossİtalya
5JeepRenegadeABD
6RenaultMeganeFransa
7NissanQashqaiJaponya
8HyundaiElantraGüney Kore
9Lamborghini10 Diablo GT1İtalya
10CitroenC3Fransa
11VolkswagenTiguanAlmanya
12ToyotaCorollaJaponya
13Aston MartinVanquishİngiltere
Araba ve Modeller Tablosu

Yukarıdaki tabloyu baz alıp yalnızca farklı ülkelerin listesini çıkarmak istiyorsak yapacağımız işlem aşağıdaki gibi olur:

 SELECT DISTINCT Ulke FROM markalar

Sonuç kümesi:

ulke
1ABD
2Almanya
3Fransa
4Güney Kore
5İngiltere
6İtalya
7Japonya
Sonuç Tablosu

Bu sorgu ile tekrar eden kayıtları 1 defa getirerek her bir ülkeyi çekmiş oluyoruz.

 Şimdi yalnızca ABD’ye ait araba modellerini çekelim. Kullanacağımız yazım şu şekilde olur:

   SELECT DISTINCT Model FROM markalar WHERE ulke='ABD'

Sonuç kümesi:

Model
1Fiesta
2Model S
3Renegade
Sonuç Tablosu

Bir başka örnekle devam edelim. Aşağıda Musteriler tablosu yer almaktadır.

tablo: Musteriler

idisimsehirmusteriTipimail
1Eylül ŞaşmazAntalyaBireyselesasmaz@gmail.com
2Yılmaz EskiciAdanaKurumsalyeskici@gmail.com
3Engin AşkınEskişehirBireyselenginas@hotmail.com
4Aklan A.Ş.ÇorumKurumsalinfo@aklan.com
5Ali GümüşMardinBireyselaligumus@hotmail.com
6Cemre AkManisaBireyselcemreak@icloud.com
7Silver Ltd. Şti.İstanbulKurumsalinfo@silver.com
8Altıntaş A.Ş.GiresunKurumsalinfo@kagitci.com
Musteri Tablosu

Şimdi aşağıdaki kullanım ile verileri çekmek isteyelim. Önce müşteri tiplerini DISTINCT ile kullanalım.

SELECT DISTINCT musteriTipi FROM Musteriler

Sorgu sonucu dönecek değerler şu şekilde olacaktır:

musteriTipi
1Bireysel
2Kurumsal
Sonuç Tablosu

Çünkü bireysel ve kurumsal olmak üzere tabloda iki farklı müşteri tipi bulunmaktadır.

   SELECT COUNT(DISTINCT musteriTipi) FROM Musteriler;

Bu sorgunun sonucunda Musteriler tablosunda kaç adet müşteri tipi olduğunu saydırırız. COUNT kullanımını diğer yazılarda daha detaylı göreceğiz.

Sorgunun sonucu:

(No column name)
12

Bir sonraki yazılarda görüşmek dileğiyle.

Yorum bırakın