Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Применение агрегатных функций в запросах.
Агрегатные функции предназначены для вычисления итоговых значений операций над всеми записями набор данных. Многие запросы к базе данных требуют узнать всего одно или несколько значений, которые подытоживают информацию, содержащуюся в базе данных. Например: – Какова общая сумма плановых продаж для всех служащих? – Каковы наибольший и наименьший объемы продаж? – Сколько служащих перевыполнили план? – Какова средняя стоимость заказа? – Какова средняя стоимость заказа в каждом офисе? – Сколько служащих закреплено за каждым офисом? В SQL запросы такого типа можно создавать с помощью агрегатных функций. Агрегатные функции используются подобно именам полей в операторе SELECT, но с одним исключением: они берут имя поля как аргумент. Результат, возвращаемый всеми функциями, кроме COUNT, имеет тот же тип данных, что и исходный столбец. Функция COUNT всегда возвращает целое число, независимо от типа данных исходного столбца.
Правила выполнения запросов, в которых участвуют агрегатные функции. Таблица результатов запроса, в котором участвуют агрегатные функции, генерируется следующим образом. 1. Берется таблица, указанная в предложении FROM. 2. Если имеется предложение WHERE, применить заданное в нем условие отбора к каждой строке таблицы. Если при этом получается значение TRUE, то текущая строка добавляется в результирующую таблицу, если получается значение FALSE, то строка отбрасывается. 3. Для каждой из оставшихся строк вычислить значение каждого элемента в списке возвращаемых столбцов и создать одну строку таблицы результатов запроса. Смысл запроса, в котором участвуют агрегатные функции, легче понять, если разбить процесс выполнения на два этапа: сначала представить выполнение запроса без агрегатных функций, а затем представить, как СУБД применяет агрегатные функции к результатам запроса, формируя при этом итоговую строку.
|