SELECT столбцы
FROM таблица
[WHERE условие_фильтрации_строк]
[GROUP BY столбцы_для_группировки]
[HAVING условие_фильтрации_групп]
[ORDER BY столбцы_для_сортировки]
При наличии фразы GROUP BY фраза SELECT применяется к каждой группе, сформированной фразой группировки. В этом случае и действие агрегатных функций, указанных во фразе SELECT, будет распространяться не на всю результирующую таблицу, а только на строки в пределах каждой группы. Каждое выражение в списке фразы SELECT должно принимать единственное значение для группы, то есть оно может быть:
константой;
агрегатной функцией, которая оперирует всеми значениями аргумента в пределах группы и агрегирует их в одно значение (например, в сумму);
выражением, идентичным стоящему во фразе GROUP BY;
выражением, объединяющим приведенные выше варианты.
Рассмотрим возможности фразы GROUP BY, переходя от простых вариантов ее использования к более сложным. Группировка по одному столбцу Группировка по значениям одного столбца является самым простым вариантом использования фразы GROUP BY.
Приведем примеры. Запрос. Для каждого корпуса подсчитать количество находящихся в нем кафедр.
SELECT NUM_KORPUSA AS “Корпус”,
СOUNT(*) AS "K-вo кафедр"
FROM KAFEDRA
GROUP BY NUM_KORPUSA ;
Если в запросе используются фразы и WHERE, и GROUP BY, строки, не удовлетворяющие условию фразы WHERE, исключаются до выполнения группировки. Вследствие этого группировка производится только по тем строкам, которые удовлетворяют условию. В случае многотабличных запросов сначала производится соединение таблиц, а затем их группировка.
Группировка по нескольким столбцам.
SQL позволяет группировать строки таблицы и по нескольким столбцам. В этом случае имена столбцов перечисляются во фразе GROUP BY через запятую.
Do'stlaringiz bilan baham: |