
- •Язык sql Выбор данных (оператор select)
- •Предложение group by (применение агрегатных функций)
- •Предложение having (условия обработки сформированных групп)
- •Порядок обработки предложений where, group by и having
- •Соединение
- •Вывод итоговых значений
- •Вложенные запросы (подзапросы)
- •Операторы манипулирования данными (dml) с подзапросами.
- •Понятие представления. Операции создания представлений.
- •Распределенные запросы
Вывод итоговых значений
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