Сортировка и группирование данных
Примеры
Следующая инструкция демонстрирует использование функций SUM(), AVG(), MIN() и MAX():
SELECT SUM (BUDGET), AVG (BUDGET), MIN (BUDGET), MAX (BUDGET) FROM DEPARTMENT WHERE HEAD_DEPT = 100;Вы уже знаете, как построить запрос к базе данных и получить от нее определенным образом организованные данные. Вы уже знаете, как отсортировать данные запроса. В ходе этого урока мы с вами узнаем, как можно разделять полученные данные на группы так, чтобы их легко было воспринимать.
Основными на этом уроке будут следующие темы.
- Зачем группировать данные?
- Выражение GROUP BY
- Функции группирования значений
- Использование итоговых функций
- Группирование по столбцам
- GROUP BY в сравнении сORDER BY
- Выражение HAVING
Зачем группировать данные?
Группирование данных – это размещение данных в столбцах с повторяющимися значениями в определенном логичном порядке. Например, в базе данных содержится информация о служащих. Служащие могут жить в разных городах, но многие из них живут в одном городе. Вполне вероятно, что вам может понадобиться информация по каждому конкретному городу и живущих там служащих. Для этого вы группируете информацию о служащих по городам – и соответствующий отчет готов!
|
|
Предположим, что вам необходимо найти среднюю зарплату служащих по каждому из городов. Это можно сделать, применив к столбцу SALARY итоговую функцию AVG, а затем использовав GROUP BY для группирования выводимых данных по городам.
Группирование данных осуществляется с помощью выражения GROUP BY в операторе SELECT. На предыдущем уроке были рассмотрены итоговые функции. В ходе данного урока мы с вами научимся использовать итоговые функции в совокупности с выражением GROUP BY, чтобы лучше организовать представляемые данные.
Ключевое слово GROUP BY используется в операторе SELECT для того, чтобы объединять повторяющиеся значения в группы. Ключевое слово GROUP BY должно следовать за выражением WHERE и предшествовать ключевому слову ORDER BY.
Вот какая должна быть последовательность ключевых слов в операторе, выполняющем запрос:
SELECT FROM WHERE GROUP BY ORDER BY
Ключевое слово GROUP BY должно следовать за условиями в выражении ключевого слова WHERE и предшествовать ключевому слову ORDER BY, если последнее имеется.
SELECT столбец1, столбец2
FROM таблица1, таблица2
WHERE условия
GROUP BY столбец1, столбец2
ORDER BY столбец1, столбец2
В следующих разделах рассматривается множество примеров использования ключевого слова GROUP BY в самых разных ситуациях.
[ GROUP BY [ ALL ] group_by_expression [,... n ]
[ WITH { CUBE | ROLLUP } ]
]