2.2. Агрегирующие функции языка SQLПри статистическом анализе баз данных необходимо получать такую информацию, как общее количество записей, наибольшее и наименьшее значения заданного поля записи, усредненное значение поля и т. д. Данная задача выполняется с помощью запросов, содержащих так называемые агрегирующие функции. Агрегирующие функции производят вычисление одного «собирающего» значения (суммы, среднего, максимального, минимального значения и т. п.) для заданных групп строк таблицы. Группы строк определяются различными значениями заданного поля (полей) таблицы. Разбиение на группы выполняется с помощью предложения group by. Рассмотрим перечень агрегирующих функций. - count определяет количество записей данного поля в группе строк. - sum вычисляет арифметическую сумму всех выбранных значений данного поля. - avg рассчитывает арифметическое среднее (усреднение) всех выбранных значений данного поля. - max находит наибольшее из всех выбранных значений данного поля. - min находит наименьшее из всех выбранных значений данного поля. Для определения общего числа записей в таблице Туристы используем запрос select count (*) from Туристы; Результат выполнения запроса представлен на рисунке 34. Рис. 34. Результат запроса с функцией count Отметим, что результатом запроса является одно число, содержащееся в поле с отсутствующим именем. А если мы захотим посчитать однофамильцев (то есть разбить набор записей-результатов запроса на группы с одинаковыми фамилиями), то запрос будет выглядеть так: select Фамилия, count (Фамилия) from Туристы group by Фамилия; Синтаксис использования других операторов одинаков - следующие запросы извлекают сумму, арифметическое среднее, наибольшее и наименьшее значения поля «Цена» таблицы «Туры» (здесь заданной группой записей, как и в первом примере с функцией count, являются все записи таблицы). select sum(Цена) from Туры Если значение поля может быть незаполненным, то для обращения к таким полям необходимо использовать оператор null. Отметим, что величина null не означает, что в поле стоит число 0 (нуль) или пустая текстовая строка. Существует два способа образования таких значений: 1) Microsoft SQL Server автоматически подставляет значение null, если в значение поля не было введено никаких значений и тип данных для этого поля не препятствует присвоению значения null; 2) или если пользователь явным образом вводит значение null.
|