mobilhanem-SQL-Dersleri

Sql Distinct Kullanımı

Merhaba Arkadaşlar,
mobilhanem.com üzerinden anlattığımız/yayınladığımız SQL derslerinde bugün sizlere SQL DISTINCT kullanımını anlatacağım.

Distinct ifadesi tablonun belli kolonlarında tekrar eden verilerin bir adet olacak şekilde çekilmesine olanak sağlar.
“İyi de bu ne işimize yarar?” sorusu aklımıza gelebilir, mesela, şirketimizde birden fazla departmanımız ve her departmanımızda birden fazla kadromuz olabilir.

Şimdi dilerseniz ufak bir örnekle pekiştirerek devam edelim:

Şirketimizin Yazılım Geliştirme departmanında hangi kadroların bulunduğunu öğrenmek istediğimde: Departman_NO’su 12 olan (12= yazılım geliştirme departmanı) kadroları (KADRO alanı) getir işlevini yapan sorguyu çalıştırmamız gerekecek.

Örnek sorgu:

SELECT DISTINCT KADRO FROM personel where DEPARTMAN_NO="12"

Örnek Sorgu Çıktısı:

Yukarıdaki sonuçta gördüğümüz gibi 12 No’lu departmandaki personellerin kadrolarını getirdi. Bunu yaparken her kadrodan sadece 1 kayıt getirdi.
Önemli bir nokta olarak : Distinct kelimesi, kendisinden sonra yazılacak olan alanlara otomatik olarak uygulanır. Kısacası; birden fazla alan üzerinde Distinct kullanılacaksa, alanların başına tek tek Distinct yazılmasına gerek yoktur.

Distinct İle Group By Arasındaki Farklar

DISTINCT ve GROUP BY fonksiyonları tamamiyle aynı ya da çok yakın değerlerde çıktı üretmektedir. Ancak sorgu performasının önemli olduğu durumlarda her ikisinin de kullanım alanları farklıdır.

SQL DISTINCT : Tekrarlanan veriyi egale etmektedir. Yani büyük bir veride aynı veriyi defalarca getirmek sıkıntı olur bunun için DISTINCT kullanılmaya değerdir. Tekrarlanan verilerden sadece 1 tanesi getirilir.

SQL GROUP BY : Adı üzerinde gruplandırma yapmak için kullanılmaktadır. Tekrarlanan veriler gruplandırılarak getirilir.

Eğer SUM, MAX, MIN, COUNT, AVG gibi  Aggregate SQL Fonksiyonları ile işlem yapacaksanız GROUP BY kullanmanız daha faydalı olacaktır.

Ayrıca:

DISTINCT Komutu “Select” sözcüğünün yanına yazılır. Örnek olarak:

SELECT DISTINCT KADRO FROM personel

GROUP BY  Komutu ise “where” kullanılarak koşul yazılacaksa, koşul yazıldıktan sonra kullanılır. Örnek olarak:

SELECT * FROM personel WHERE DEPARTMAN_NO="12" GROUP BY KADRO

Eğer koşul kullanılmayacaksa from’dan sonra kullanılabilir.

SELECT * FROM personel  GROUP BY KADRO

 

Bu dersimize burda son verelim.Özetle SQL DISTINCT komutu hakkında bol örneklerle bilgiler vermeye çalıştık. Bir sonraki dersimizde görüşmek üzere.

Konu hakkındaki sorularınızı yorum bölümünden veya sorucevap.mobilhanem.com sitemizden sorabilirsiniz.
Tüm SQL Derslerimiz için tıklayınız.

205

Yakup Yazar

3 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?