Group By X
означает , поместите всех с одинаковым значением X в одну группу .
Group By X, Y
означает объединить все те же значения X и Y в одну группу .
Чтобы проиллюстрировать это на примере, скажем, у нас есть следующая таблица, чтобы узнать, кто посещает какой предмет в университете:
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
только для столбца темы; говорят:
select Subject, Count(*)
from Subject_Selection
group by Subject
Вы получите что-то вроде:
Subject Count
------------------------------
ITB001 5
MKB114 2
... потому что есть 5 записей для ITB001 и 2 для MKB114
Если бы мы group by
два столбца:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
мы бы получили это:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
Это потому, что, когда мы группируем по двум столбцам, это говорит: "1030 *" Сгруппируйте их так, чтобы все те, у кого один и тот же предмет и семестр, были в одной группе, а затем вычислили все агрегатные функции (Количество, сумма, среднее и т. Д.) для каждой из этих групп ". В этом примере это демонстрируется тем фактом, что, когда мы их считаем, три человека делают ITB001 в 1-м семестре, а два делают в 2-м семестре. люди, делающие MKB114, находятся в 1 семестре, поэтому нет строки для 2 семестра (данные не вписываются в группу "MKB114, Semester 2")
Надеюсь, это имеет смысл.