SQL Server – Gruplandırma (GROUP BY)

SQL Server’da bazı kayıtlar ortak bilgiler içerebilir. Örneğin her bir sınıftaki öğrencilerin ortalama puanları, yaş ortalamaları, en yüksek ve en düşük puanlar, her sınıftaki öğrenci sayısı gibi istatistiksel bilgiler elde edilmek istenebilir. Bu gibi işlemlerde GROUP BY ile gruplandırma yapılması gerekmektedir.

Genel kullanım şekli aşağıdaki gibidir. GROUP BY kullanırken gruplama yapılan alanların SELECT deyiminden sonra yazılarak listelenmesi mantıklı bir yaklaşımdır. Aksi halde fonksiyon ile gelen sonuçların hangi verilere ait olduğu anlaşılmayacaktır.

Gruplandırma işlemlerini daha iyi örnekleyebilmek için normalizasyon kurallarına uymayan aşağıdaki personel tablosu ile çalışılmıştır. Personel tablosunun oluşturma ve veri girişi kodlarına Personel Tablosu Örneği başlıklı yazıdan ulaşabilirsiniz.

Örneğin, şirkette tüm çalışanların aldığı en yüksek ve en düşük maaşları listelemek istediğimizde aşağıdaki kod tablo için çalışacaktır.

Ancak her birimin ayrı ayrı en yüksek ve en düşük maaşlarını görmek için GROUP BY kullanılması gerekmektedir.

Her birimde ödenen toplam maaşı ve maaş ortalamasını birim adına göre artan sırada listeleyin.

veya

Her birimdeki maaşı 2000’den yüksek olan personellerin sayısını listeleyin. Personel sayısına göre en yüksekten en düşüğe göre sıralı olacaktır.

Birden fazla alana göre de gruplama yapılabilir. Örneğin, her birimdeki kadın ve erkek çalışan sayılarını listeleyin.

About Seçil ŞEKERCİ HÜSEM

2010 yılından bu yana Bilişim Teknolojileri Öğretmeni olarak meslek liselerinde görev yapmaktayım.

View all posts by Seçil ŞEKERCİ HÜSEM →

One Comment on “SQL Server – Gruplandırma (GROUP BY)”

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.