x'e göre grupla'nın amacını anlıyorum
Ancak GROUP BY x, y
nasıl çalışır ve ne anlama gelir?
"X'e Göre Grupla", X için aynı değere sahip olanları tek bir gruba koy anlamına gelir.
"X, Y'ye Göre Grupla" hem X hem de Y için aynı değerlere sahip olanları tek bir gruba koy anlamına gelir.
Bir örnekle açıklamak gerekirse, diyelim ki bir üniversitede kimin hangi bölüme devam ettiğiyle ilgili aşağıdaki tabloya sahibiz:
Table: Subject_Selection
Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica
Yalnızca konu sütununda bir `gruplama ölçütü' kullandığınızda; örneğin:
select Subject, Count(*)
from Subject_Selection
group by Subject
Şuna benzer bir şey alacaksınız:
Subject Count
------------------------------
ITB001 5
MKB114 2
...çünkü ITB001 için 5 ve MKB114 için 2 giriş var
Eğer iki sütuna göre gruplama yaparsak:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
bunu alırdık:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
Bunun nedeni, iki sütuna göre grupladığımızda "Aynı Konu ve Döneme sahip olanların tümü aynı grupta olacak şekilde gruplayın ve ardından bu grupların her biri için tüm toplama işlevlerini (Sayım, Toplam, Ortalama, vb.) hesaplayın" demesidir. Bu örnekte, saydığımızda, ITB001'i dönem 1'de yapan üç kişi ve dönem 2'de yapan iki** kişi olduğu gerçeği bunu göstermektedir. MKB114'ü yapan kişilerin her ikisi de dönem 1'dedir, bu nedenle dönem 2 için satır yoktur ("MKB114, Dönem 2" grubuna hiçbir veri sığmaz)
Umarım bu mantıklıdır.
GROUP BY` cümlesi, sonuç kümesini bir veya daha fazla sütuna göre gruplamak için toplama işlevleriyle birlikte kullanılır. örn:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
Bu sırayı unutmayın:
SELECT (bir veritabanından veri seçmek için kullanılır)
FROM (tabloları listelemek için kullanılır)
WHERE (cümle kayıtları filtrelemek için kullanılır)
GROUP BY (veri toplamak için bir SELECT deyiminde kullanılabilir birden fazla kayıt arasında ve sonuçları bir veya daha fazla sütuna göre gruplayarak)
HAVING (cümlesi, GROUP BY cümlesi ile birlikte aşağıdaki amaçlarla kullanılır döndürülen satır gruplarını yalnızca koşulu sağlayanlarla kısıtlayın DOĞRU ise)
ORDER BY (anahtar sözcük sonuç kümesini sıralamak için kullanılır)
Toplama işlevleri kullanıyorsanız bunların tümünü kullanabilirsiniz ve ayarlanmaları gereken sıra budur, aksi takdirde hata alabilirsiniz.
Toplam Fonksiyonlar şunlardır:
MIN belirli bir sütundaki en küçük değeri döndürür
SUM, belirli bir sütundaki sayısal değerlerin toplamını döndürür
AVG belirli bir sütunun ortalama değerini döndürür
COUNT belirli bir sütundaki toplam değer sayısını döndürür
COUNT(*) bir tablodaki satır sayısını döndürür