Раздел GROUP BY

Раздел GROUP BYпозволяет выполнять группировку строк таблиц по определенным критериям. Для каждой группы можно выполнить специальные функции агрегирования, которые применяются ко всем строкам в группе. Одним из примеров использования раздела GROUP BYявляется суммирование однотипных значений.

Синтаксис раздела GROUP BYследующий:

GROUP BY [ALL]<условие_ группировки> [,...,n]

При использовании группировки (раздела GROUP BY)на раздел SELECT накладываются дополнительные ограничения. В непосредственном виде разрешается указание только имен столбцов, перечисленных в разделе GROUP BY,то есть тех столбцов, по которым осуществляется группировка. Значения других столбцов не могут быть выведены в непосредственном виде, так как обычно каждая группа содержит множество строк, а в результате выборки для каждой группы должно быть указано единственное значение. Поэтому, чтобы вывести значения столбцов, не задающих критерии группировки, необходимо использовать функции агрегирования.

Аргумент <условие_ группировки) определяет условие группировки. Обычно в качестве условия группировки указывается имя столбца, однако в общем случае разрешается использование и выражений, включающих ссылки на столбцы.

Функции агрегирования позволяют выполнять статистическую обработку данных, подсчитывая количество, сумму, среднее значение и другие величины для всего набора данных. Во многих функциях агрегирования допускается использование ключевых слов ALL и DISTINCT. Ключевое слово АLL выполняет агрегирование всех строк исходного набора данных. При указании ключевого слова DISTINCT будет выполняться агрегирование только уникальных строк. Все повторяющиеся строки будут проигнорированы. По умолчанию выполняется агрегирование всех строк, то есть используется ключевое слово ALL. Далее приведены описания некоторых функций агрегирования.

AVGO

Эта функция вычисляет среднее значение для указанного столбца Функция имеет следующий синтаксис:

AVG ([ALL / DISTINCT] <выражение>)

При выполнении группировки (GROUP BY) вычисляет среднее значение для каждой группы. Если группировка не используется, то вычисляет среднее по всему столбцу. Например;

SELECT AVG (Количество_ часов) FROM Учебный_план

Результат запроса:

_ _ _ _ _ _ _ _ _ _

(1 row(s) affected)

Теперь рассмотрим пример использования функции AVG совместно с разделом GROUP BY при выполнении группировки по столбцу Семестр:

SELECT Семестр, AVG (количество_ часов)

FROM Учебный_ план

GROUP BY Семестр

Результат:

Семестр

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

1 50

2 54

3 46

4 39

5 37

6 27

7 34

8 44

9 32

(9 row(s) affected)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: