Читайте также:
|
|
Довольно часто требуется узнать, сколько записей соответствует тому или иному запросу, какова сумма значений некоторого числового столбца, его максимальное, минимальное и среднее значения. Для этого служат так называемые итоговые (статистиче- ские, агрегатные) функции. Итоговые функции обрабатывают наборы записей, заданные, например, выражением 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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Оператор GROUP ВУ | | | Def howBig (i) |