Eğitm Sayısı :532
AnasayfaMysql DersleriMysql Dersleri | Group By Deyimi

Mysql Dersleri | Group By Deyimi

Mysql Dersleri

Mysql de bazı verilerimizi ortak bir grup halinde listelemek isteyebiliriz . Örnek verecek olursak. Ben her bölümde kaç öğrenci olduğunu öğrenmek isteyebilirim. O zaman ben bölüme göre gruplama yaparsam bana her bölümde kaç öğrenci olduğu sonucu gelir. Şimdi daha fazla uzatmadan örnekleri inceleyelim.

Öğrenci Tablosu

ogrenciId ad soyad okulNo bolumId
1 Mehmet Durmaz 1250 1
2 Ahmet Yıkılmaz 1452 1
3 Ayşe NULL 1656 2
4 Melek Tunc 1245 2
5 Seher Ay 2364 5
6 Şakir Yok 1025 4
7 Abbas Kırmızı 1436 3
8 Ayşe Pekmez 1237 2
9 Mert Günaydın 2563 5

Notlar Tablosu

notId ogrenciId dersId vize final
1 1 1 60 45
2 2 3 69 75
3 3 3 56 76
4 3 5 67 89
5 4 2 80 50
6 5 5 60 76
7 6 4 26 70
8 7 2 90 35
9 8 1 60 56
10 9 2 54 45
11 4 3 58 98

Group by Yapısı

SELECT < sütun ismi>
FROM < tablo ismi>
< istersek burada şartta kullanabiliriz>
GROUP BY < sütun ismi>

Örnek – 1

Aşağıdaki sorgumuzda öğrenci tablosundaki kayıtları bolumId ye göre gruplama yaptık ve sadece ekranda bölümId i listelettik . Eğer diğer sütunları da listeleme işlemi yapsaydık ne olurdu?. İkinci örneğimize bakalım …

bolumId
1
2
3
4
5

Örnek – 2

Aynı sütunu gruplama yaptık ama bütün satırları ekranda gösterdik . Dikkat ederseniz sonuçların bolumId dışındaki diğerleri çok ilgisiz. Her bölümId sahip ilk kayıtları getirmiş. Çünkü Diğer sütunları getirmek burada biraz saçma da durmakta neden derseniz bolumId ait ben gruplama yaptıysam doğal olarak karşısında bir sayı bulmam lazım çünkü orada o bolumId ait kaç tane kayıt olduğunu öğrenmek için grouplama yapıyoruz. Peki O zaman nasıl verimli kullanacağız o zaman 3.örneğimize bakalım…

ogrenciId ad soyad okulNo bolumId
1 Mehmet Durmaz 1250 1
3 Ayşe NULL 1656 2
7 Abbas Kırmızı 1436 3
6 Şakir Yok 1025 4
5 Seher Ay 2364 5

Örnek – 3

Her bölümde kaç öğrenci olduğunu öğrenebilirim böylelikle Group by i doğru bir şekilde kullanabilirim.

bolumId ogrenciSayisi
1 2
2 3
3 1
4 1
5 2

İki Sütuna göre Gruplama yapmak

Bu örneğimizde iki sütuna göre gruplama yapacağız ilk sütunumuz öğrenciler tablosunda bulunan bolumId, ikinci sütunumuz notlar tablosunda bulunan dersId, yapmak istediğimiz şey ise Bölümlere göre dersleri gruplamak ve bu dersi kaç öğrencinin aldığını bulmak. Örnek verecek olursak Bilgisayar öğretmenliği bölümünde x Dersini 1 kişi y dersini 2 kişi alıyor şeklinde sonuc alacağız.

bolumId dersId count(o.ogrenciId)
1 1 1
1 3 1
2 1 1
2 2 1
2 3 2
2 5 1
3 2 1
4 4 1
5 2 1
5 5 1

İfademize Şart Ekleyelim İki Sütuna Göre Listeletelim

Yukarıdaki örneğimizde ki yaptığımızın üzerine bu sefer bir şart koyalım şartımızda vize ve finalin ortalamasını alsın ve bu ortalamanın üzerinde olan kişiler bulalım bir nevi geçti kaldı gibi düşünebilirsiniz.

bolumId dersId count(o.ogrenciId)
1 3 1
2 2 1
2 3 2
2 5 1
5 5 1

Aşağıdaki yukarıdaki sql cümlemize case ifadesi ekleyerek aşağıdaki gibi anlaşılır bir sonuç elde edebiliriz.

bolumId dersId count(o.ogrenciId) bolumler dersler
1 3 1 Bilgisayar Öğretmenliği Programlama
2 2 1 Fizik Öğretmenliği Fizik
2 3 2 Fizik Öğretmenliği Programlama
2 5 1 Fizik Öğretmenliği Eğitimde Grafik ve Canlandırma
5 5 1 Biyokimya Mühendisliği Eğitimde Grafik ve Canlandırma
Paylaşmak Güzeldir :)
Mysql Dersleri | Cas
Mysql Dersleri | Mys

ademyalcin27@gmail.com

Oy
Henüz yorum yapılmadı . İlk sen neden yorum yapmayasın ?

Yorum yap

CAPTCHA (Şahıs Denetim Kodu) Resmi

*