Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Итоговые функции

Читайте также:
  1. II. Основные функции отделения Фонда
  2. III. Функции и организация работы аттестационной комиссии
  3. III. Функции и полномочия контрактного управляющего
  4. А) все функции юридического лица
  5. Банковская система. Функции Центрального банка и коммерческого банка. Основные операции коммерческих банков (активные и пассивные)
  6. Бесконечно большие функции и их связь с
  7. в отношении которых функции учредителя осуществляет Комитет по культуре

Довольно часто требуется узнать, сколько записей соответствует тому или иному запросу, какова сумма значений некоторого числового столбца, его максимальное, минимальное и среднее значения. Для этого служат так называемые итоговые (статистиче- ские, агрегатные) функции. Итоговые функции обрабатывают наборы записей, заданные, например, выражением WHERE. Если их включить в список столбцов, следующий за оператором SELECT, то результатная таблица будет содержать не только столбцы таблицы базы данных, но и значения, вычисленные с помощью этих функций. Далее приведен список итоговых функций.

· COUNT(параметр) — возвращает количество записей, указанных в параметре. Если требуется получить количество всех записей, то в качестве параметра следует указать символ звездочки (*), Если в качестве параметра указать имя столбца, то функция вернет количество записей, в которых этот столбец имеет значения, отличные от NULL. Чтобы узнать, сколько различных значений содержит столбец, перед его именем следует указать ключевое слово DISTINCT.

Например:

SELЕСТ COUNT (*) FROM Клиенты;.

SELECT COUNT (Сумма_заказа) FROM Клиенты;

SELECT COUNT(DISTINCT Сумма_заказа) FROM Клиенты;

Попытка выполнить следующий запрос приведет к сообщению об ошибке:

SELECT Регион, COUNT(*) FROM Клиенты;

· SUM (параметр } — возвращает сумму значений указанного в параметре столбца. Параметр может представлять собой и выражение, содержащее имя столбца. Например:

SELECT SUM(Сумма_заказа) FROM Клиенты;

Данное SQL-выражение возвращает таблицу, состоящую из одного столбца и одной записи и содержащую сумму всех определенных значений столбца Сумма_заказа из таблицы

Клиенты.

Допустим, что в исходной таблице значения столбца

Сумма_заказа выражены в рублях, а нам требуется вычислить общую сумму в долларах. Если текущий обменный курс равен, например, 32,8, то получить требуемый результат можно с помощью выражения:

SELECT SUM(Сумма_заказа/32.8) FROM Клиенты;

· AVG(параметр) — возвращает среднее арифметическое всех значений указанного в параметре столбца. Параметр может представлять собой выражение, содержащее имя столбца.

Например:

SELECT AVG (Сумма_заказа) FROM Клиенты;

SELECT AVG(Сумма_заказа/32.8) FROM Клиенты

WHERE Регион <> 'Северо_Запад';

· Мах(параметр) — возвращает максимальное значение в столбце, указанном в параметре. Параметр может также представлять собой выражение, содержащее имя столбца. Например:

SELECT МАХ(Сумма_заказа) FROM Клиенты;

SELECT МАХ(Сумма_заказа*32.8) FROM Клиенты WHERE Регион <> 'Северо_Запад';

MIN(параметр) — возвращает минимальное значение в столбце, указанном в параметре. Параметр может представлять собой выражение, содержащее имя столбца.

Например:

SELECT MIN(Сумма_заказа) FROM Клиенты;

SELECT MIN(Сумма_заказа*32,8) FROM Клиенты WHERE Регион <> 'Северо_Запад';

На практике нередко требуется получить итоговую таблицу, содержащую суммарные, усредненные, максимальные и минимальные значения числовых столбцов. Для этого следует испольэовать группировку (GROUP BY) и итоговые функции.

SELECT Регион, SUM(Сумма_заказа) FROM Клиенты GROUP BУ Регион;

Результатная таблица для данного запроса содержит имена регионов и итоговые (общие) суммы заказов всех клиентов из соответствующих регионов.

Теперь рассмотрим запрос на получение всех итоговых данных

по регионам:

SELECT Регион, SUM(Сумма_заказа), AVG(Сумма_заказа), МАХ(Сумма_заказа), MIN(Сумма_заказа) FROM Клиенты

GROUP BY Регион;

При использовании итоговых функций в списке столбцов в операторе SELECT заголовки соответствующих им столбцов в таблице результата имеют вид Ехрг1001, Ехрг1002 и т. д. (или что- нибудь аналогичное, в зависимости от реализации SQL). Однако заголовки для значений итоговых функций и других столбцов вы можете задавать по своему усмотрению. Для этого достаточно после столбца в операторе SELECT указать выражение вида:

AS заголовок столбца

Ключевое слово AS (как) означает, что в результатной таблице соответствующий столбец должен иметь заголовок, указанный после AS. Назначаемый заголовок еще называют псевдонимом. В следующем примере задаются псевдонимы для всех вычисляемых столбцов:

SELECT Регион,

SUM(Сумма_заказа) АS [общая сумма заказа],

AVG(Сумма_заказа) AS [Средняя сумма заказа],

МАХ(Сумма_заказа) АS Максимум,

MIN(Сумма_заказа) AS Минимум FROM Клиенты

GROUP BY Регион;

Псевдонимы, состоящие из нескольких слов, разделенных пробелами, заключаются в квадратные скобки.

Итоговые функции можно использовать в выражениях SELECT и HAVING, но их нельзя применять в выражении WHERE. Оператор HAVING аналогичен оператору WHERE но в отличие от WHERE он отбирает записи в группах.

Допустим, требуется определить, в каких регионах более одного клиента. С этой целью можно воспользоваться таким запросом:

SELECT Регион, Count(*) FROM Клиенты

GROUF BY Регион HAVING COUNT(*) >. 1;


Дата добавления: 2015-08-09; просмотров: 77 | Нарушение авторских прав


Читайте в этой же книге: Puts howBig(7); puts howBig(15) | When 100 .. 999 | For i in 1 ... 6 |
<== предыдущая страница | следующая страница ==>
Оператор GROUP ВУ| Def howBig (i)

mybiblioteka.su - 2015-2024 год. (0.007 сек.)