Базы данных. Основы SQL реляционных баз данных. Копейкин М.В - 92 стр.

UptoLike

ПРЕДЛОЖЕНИЕ GROUP BY (перекомпоновка, порядок)
Предложение GROUP BY позволяет определять подмножество значений в особом
поле в терминах другого поля и применять функцию агрегата к подмножеству. Это дает
возможность объединять поля и агрегатные функции в едином предложении SELECT.
Например, предположим, что Вы хотите определить, сколько сотрудников
находятся в каждом отделе (ответ приведен на рис. 4.21):
SELECT Ид_
Отд, COUNT (DISTINCT Ид_Отд) AS Кол-во_сотрудников
FROM Отдел_ Сотрудники
WHERE Дата_ увольнения NOT NULL
GROUP BY Ид_Отд;
Ид_Отд Кол-во_сотрудников
1 5
2 4
3 1
Рис. 4.21. Запрос с группировкой
В результате выполнения предложения GROUP BY остаются только уникальные
значения столбцов, по умолчанию отсортированные по возрастанию. В этом аспекте
предложение GROUP BY отличается от предложения ORDER BY тем, что последнее
хотя и сортирует записи по возрастанию, но не удаляет повторяющиеся значения. В
приведенном примере запрос группирует строки таблицы по значениям столбца Ид_Отд
(по номерам отделов). Строки с одинаковыми номерами отделов сначала объединяются в
группы, но при этом для каждой группы отображается только одна строка. Во втором
столбце выводится количество строк в каждой группе, т.е. число сотрудников в каждом
отделе.
Значение поля, к которому применяется GROUP BY, имеет, по определению,
только одно значение на
группу вывода так же, как это делает агрегатная функция.
Результатом является совместимость, которая позволяет агрегатам и полям объединяться
таким образом.
Пусть, например, таблица ВЕДОМОСТЬ_ОПЛАТЫ имеет вид рис. 4.22 и мы
хотим определить максимальную сумму, выплаченную по ведомости каждому
сотруднику.