Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция12.doc
Скачиваний:
0
Добавлен:
03.01.2020
Размер:
868.35 Кб
Скачать

Агрегирующие функции языка sql

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

Агрегирующие функции производят вычисление одного «собирающего» значения (суммы, среднего, максимального, минимального значения и т. п.) для заданных групп строк таблицы. Группы строк определяются различными значениями заданного поля (полей) таблицы. Разбиение на группы выполняется с помощью предложения group by.

Рассмотрим перечень агрегирующих функций.

  • count определяет количество записей данного поля в группе строк.

  • sum вычисляет арифметическую сумму всех выбранных значений данного поля.

  • avg рассчитывает арифметическое среднее (усреднение) всех выбранных значений данного поля.

  • max находит наибольшее из всех выбранных значений данного поля.

  • min находит наименьшее из всех выбранных значений данного поля.

Для определения общего числа записей в таблице Туристы используем запрос

select count (*) from Туристы;

Результат выполнения запроса представлен на рисунке 10.

Рис. 10. Результат запроса с функцией count

Отметим, что результатом запроса является одно число, содержащееся в поле с отсутствующим именем.

А если мы захотим посчитать однофамильцев (то есть разбить набор записей-результатов запроса на группы с одинаковыми фамилиями), то запрос будет выглядеть так:

select Фамилия, count (Фамилия) from Туристы group by Фамилия;

Синтаксис использования других операторов одинаков - следующие запросы извлекают сумму, арифметическое среднее, наибольшее и наименьшее значения поля «Цена» таблицы «Туры» (здесь заданной группой записей, как и в первом примере с функцией count, являются все записи таблицы).

select sum(Цена) from Туры

select avg(Цена) from Туры

select max(Цена) from Туры

select min(Цена) from Туры

Если значение поля может быть незаполненным, то для обращения к таким полям необходимо использовать оператор null. Отметим, что величина null не означает, что в поле стоит число 0 (нуль) или пустая текстовая строка. Существует два способа образования таких значений:

1) Microsoft SQL Server автоматически подставляет значение null, если в значение поля не было введено никаких значений и тип данных для этого поля не препятствует присвоению значения null;

2) или если пользователь явным образом вводит значение null.

Оператор сравнения записей like

Оператор сравнения like нужен для поиска записей по заданному шаблону. Эта задача является одной из наиболее часто встречаемых задач - например, поиск клиента с известной фамилией в базе данных.

Предположим, что в таблице «Туристы», содержащей поля «Фамилия», «Имя» и «Отчество», требуется найти записи клиентов с фамилиями, начинающимися на букву «И».

select Фамилия, Имя, Отчество from Туристы

where Фамилия Like 'И%'

Результатом этого запроса будет таблица, представленная на рисунке 11. Оператор like содержит шаблоны, позволяющие получать различные результаты.

Рис. 11. Запрос с оператором like

Таблица 1 Шаблоны оператора like

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]