В директиве COMPUTE можно использовать функции агрегирования. Эта директива генерирует итоговые значения, которые отображаются в виде дополнительных строк. Директива позволяет получать итоговые значения для групп, вычислять значения, применив к одной и той же группе несколько функций. Общий синтаксис директивы COMPUTE выглядит следующим образом:
COMPUTE <объединение строк>(<имя столбца>)
[,<объединение строк>(<имя столбца>),…]
[BY <имя столбца>[,<имя столбца>,…]]
Получим список клиентов и определим их общее количество.
SELECT Код_клиента, Фамилия
FROM Клиент
ORDER BY Фамилия
COMPUTE COUNT(Фамилия)
Результат выборки:
Код_клиента Фамилия
----------- --------------------
4 Алексеев
9 Артемьев
6 Владимиров
1 Иванов
7 Котов
2 Попович
3 Сазонов
8 Сидоров
10 Соков
5 Хазанов
cnt
==========
(11 row(s) affected)
Существует несколько ограничений на использование директивы COMPUTE:
· В директиву нельзя включать типы данных TEXT или IMAGE.
· С итоговыми значениями нельзя использовать ключевое слово DISTINCT.
· В директиве COMPUTE можно использовать только те столбцы, которые упомянуты в предложении SELECT.
· В одной и той же команде нельзя совмещать COMPUTE и SELECT INTO.
· Подмножества столбцов, перечисленных в директивах ORDER BY и COMPUTE BY должны быть идентичны.
· В директиве ORDER BY необходимо использовать имя столбца, но не заголовок.