Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Агрегирование и группировка данных
В данном разделе рассматривается применение в запросе агрегирующих функций - функций вычисляющих результат по набору значений группы, либо всех записей БД. Например, функция sum возвращает сумму значений заданного поля, а функция count - общее число записей. Агрегирующая функция может применяться ко всем записям БД слоя, к выборке по заданным условиям и, кроме того, возможно группирование записей слоя в несколько групп, и применение агрегирующей функции к каждой группе («Группировка записей»). Применяемые агрегирующие функции записываются после ключевого слова SELECT. Также допускается использовать агрегирующие функции в составе выражений, включающих функции, арифметические и побитовые операции. В одном запросе может перечисляться несколько выражений с агрегирующими функциями. Не допускается в запросе одновременно с агрегирующими функциями запрашивать значения полей записей БД, либо использовать в аргументах неагрегирующих функций обращения к полям записей БД. Например, запрос вида SELECT SQRT(Area), SUM(Perimeter) FROM Здания не допускается, поскольку аргументом функции SQRT является название поля данных. Общая запись агрегирующих функций: < Функция> ([ DISTINCT ] < выражение>) В качестве аргумента агрегирующей функции обычно используется название поля, над значениями которого проводятся вычисления. Также допускается в качестве аргумента использовать выражения, включающие в себя произвольную комбинацию названий полей, констант, функций и подзапросов, объединенных арифметическими и побитовыми операциями. Остальная часть запроса задается стандартным образом. Перед аргументом функции (кроме функций MAX и MIN)может указываться ключевое слово DISTINCT. В этом случае итоговое значение вычисляется только для различающихся значений аргумента. При использовании ключевого слова DISTINCT в качестве аргумента агрегирующей функции нельзя использовать арифметические выражения, - только названия полей. В языке SQL используются следующие агрегирующие функции: SUM([DISTINCT] < выражение>) Выводит в итоговой таблице сумму значений для выражения по полям выборки. Выражение должно возвращать числовое значение. AVG([DISTINCT] < выражение>) Среднее значение для выражения. Выражение должно возвращать числовое значение. COUNT([DISTINCT] < выражение> |*) Подсчитывает число записей, в который выражение не имеет значение Null (поля имеют значение Null, когда никакое значение для них не задано). Выражение может возвращать произвольное значение. При используемом формате функции COUNT (*) возвращает общее количество записей в БД слоя. MAX(< выражение>) Возвращает максимальное значение выражения для выборки. MIN(< выражение>) Возвращает минимальное значение выражения из выборки.
|