Amacını anlıyorum GROUP BY x
Ama nasıl
GROUP BY x, y
çalışır ve bu ne anlama geliyor?
Amacını anlıyorum GROUP BY x
Ama nasıl
GROUP BY x, y
çalışır ve bu ne anlama geliyor?
Yanıtlar:
Group By X
" X" için aynı değere sahip olanları bir gruba koymak anlamına gelir .
Group By X, Y
" X" ve "Y" için aynı değerlere sahip olanları bir gruba koymak anlamına gelir .
Bir örnek kullanarak göstermek için, bir üniversitede hangi derse kimlerin katıldığına ilişkin aşağıdaki tabloya sahip olduğumuzu varsayalım:
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
group by
Yalnızca konu sütununda a kullandığınızda ; söyle:
select Subject, Count(*)
from Subject_Selection
group by Subject
Gibi bir şey alacaksınız:
Subject Count
------------------------------
ITB001 5
MKB114 2
... çünkü ITB001 için 5, MKB114 için 2 giriş var
group by
İki sütuna olsaydık :
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
bunu alacağız:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
Bunun nedeni, iki sütuna göre gruplandırdığımızda, "Aynı Konu ve Yarıyıl'a sahip olanların tümü aynı grupta olacak şekilde gruplandırın ve ardından tüm toplama işlevlerini (Sayım, Toplam, Ortalama vb.) Hesaplamaktır . ) bu gruplar" her biri için . Bu örnekte bu, onları saydığımızda, 1. yarıyılda ITB001 yapan iki kişi ve 2. yarıyılda yapan iki kişi olduğu gerçeği ile gösterilmiştir. MKB114 yapan her iki kişi de 1. yarıyıldadır. dönem 2 satırı ("MKB114, Dönem 2" grubuna hiçbir veri sığmıyor)
Umarım bu mantıklıdır.
GROUP BY A,B
aynıdır GROUP BY B,A
?
GROUP BY a, b
ve GROUP BY a AND b
ikincisi sadece listeleri gruplandırılmış tam olarak aynı içeriğe sahip öğeler ve hayır "undergroups" beri. Bu durumda çıktı birinciyle aynı olur.
GROUP BY
Maddesi, bir ya da daha fazla sütuna göre grubuna toplama işlevleri ile bağlantılı olarak sonuç kümesi kullanılmaktadır. Örneğin:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
Bu siparişi hatırla:
1) SELECT (bir veritabanından veri seçmek için kullanılır)
2) FROM (yan tümce tabloları listelemek için kullanılır)
3) NEREDE (madde filtreleri filtrelemek için kullanılır)
4) GROUP BY (yan tümce, bir SELECT deyiminde birden çok kayıtta veri toplamak ve sonuçları bir veya daha fazla sütuna göre gruplamak için kullanılabilir)
5) HAVING (yan tümce, döndürülen satır gruplarını yalnızca koşulu TRUE olanlarla sınırlamak için GROUP BY yan tümcesi ile birlikte kullanılır)
6) ORDER BY (anahtar kelime, sonuç kümesini sıralamak için kullanılır)
Toplama işlevlerini kullanıyorsanız bunların tümünü kullanabilirsiniz ve ayarlanması gereken sıra budur, aksi takdirde bir hata alabilirsiniz.
Toplama İşlevleri:
MIN, belirli bir sütundaki en küçük değeri döndürür
TOPLA, 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