Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык SQL выбор данных Ред 2010 12.01Зам.doc
Скачиваний:
11
Добавлен:
26.08.2019
Размер:
913.92 Кб
Скачать

Вывод итоговых значений

COMPUTE - формирует итоги, которые появляются в дополнительном столбце в конце результирующего набора.

При использовании с ключевым словом BY предложение COMPUTE формирует в результирующем наборе сегменты и промежуточные итоги. В одном запросе можно указать одновременно COMPUTE BY и COMPUTE.

Синтаксис

[ COMPUTE

    { { AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM }

    ( expression ) } [ ,...n ]

    [ BY expression [ ,...n ] ]

]

Аргументы:

AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM - указывает статистическую функцию для выполнения.

Статистическая функция для строк

Результат

AVG

Среднее значение в числовом выражении

COUNT

Количество выбранных строк

MAX

Наибольшее значение в выражении

MIN

Наименьшее значение в выражении

STDEV

Статистическое среднеквадратичное отклонение для всех значений выражения

STDEVP

Статистическое среднеквадратичное отклонение для заполнения по всем значениям выражения

SUM

Сумма значений в числовом выражении

VAR

Статистическая дисперсия для всех значений выражения

VARP

Статистическая дисперсия для заполнения по всем значениям выражения

Эти функции игнорируют значения NULL.

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

Ключевое слово DISTINCT не применимо со статистическими функциями для строк, определенными в предложении COMPUTE.

expression -выражение такое, как имя столбца, над которым выполняется вычисление. Аргумент expression должен присутствовать в списке выбора и быть указан идентично одному из выражений в списке выбора.

Псевдоним столбца, определенный в списке выбора, не может быть использован в аргументе expression.

BY expression - формирует сегменты и промежуточные итоги в результирующем наборе.

Аргумент expression идентичен выражению order_by_expression в связанном предложении ORDER BY. Обычно это имя или псевдоним столбца. Можно указать несколько выражений. При перечислении нескольких выражений после ключевого слова BY группа разбивается на подгруппы, а статистические функции применяются к каждому уровню группирования.

При использовании предложения COMPUTE BY необходимо также использовать предложение ORDER BY. Выражения должны быть такими же, как в предложении ORDER BY, или быть их подмножеством. Располагаться они должны в той же последовательности.

Например, если предложением ORDER BY является ORDER BY a, b, c, , предложение COMPUTE может быть любым из следующих:

COMPUTE BY a, b, c

COMPUTE BY a, b

COMPUTE BY a

Пример:

USE AdventureWorks;

GO

SELECT CustomerID, OrderDate, SubTotal, TotalDue, SalesPersonID

FROM Sales.SalesOrderHeader

WHERE SalesPersonID =277

ORDER BY OrderDate

COMPUTE SUM(SubTotal), SUM(TotalDue)

Результат: COMPUTE

USE AdventureWorks;

GO

SELECT SalesPersonID, CustomerID, OrderDate, SubTotal, TotalDue

FROM Sales.SalesOrderHeader

ORDER BY SalesPersonID, OrderDate

COMPUTE SUM(SubTotal), SUM(TotalDue) BY SalesPersonID;

Результат: COMPUTE BY