Команда COMPUTE позволяет вычислять и выдавать итоговые значения. При вызове без параметров выдает все заданные вычисления. Команда COMPUTE имеет следующий синтаксис:
<команда COMPUTE> ::=
COMP[UTE]{ <функция> [LAB[EL] <текст>]}
OF <ссылка на столбец>{ <ссылка на столбец>}
ON <ссылка на место>{ <ссылка на место>}
<ссылка на место> ::=
<ссылка на столбец> | REPORT | ROW
Функции, которые можно использовать при вычислении в команде COMPUTE, представлены в .
Таблица 8. Функции в команде COMPUTE.
Функция | Назначение | Допустимые типы данных |
AVG | Среднее среди непустых значений | Числовые |
COU[NT] | Количество непустых значений | Все |
MIN[IMUM] | Минимальное значение | Числовые и строковые |
MAX[IMUM] | Максимальное значение | Числовые и строковые |
NUM[BER] | Количество строк | Все |
SUM | Сумма непустых значений | Числовые |
STD | Среднеквадратичное отклонение непустых значений | Числовые |
VAR[IANCE] | Дисперсия непустых значений | Числовые |
Назначение основных конструкций команды COMPUTE описано в .
Таблица 9. Основные конструкции команды COMPUTE.
Конструкция | Описание | |
LABEL <текст> | Задает метку вычисляемого значения. Если эта конструкция не указана, выдается полное имя функции (см. ). Максимальная длина текста - 500 символов. Если текст содержит пробелы и символы пунктуации, его надо брать в одиночные кавычки. Метка выравнивается влево и усекается до меньшего из значений ширины столбца или длины строки.
Метка для вычисляемого значения выдается в столбце, по которому выполняется BREAK. Чтобы метка не выдавалась, необходимо задать опцию NOPRINT в команде COLUMN для этого столбца. Если вычисления выполняются по ON ROW или ON REPORT, вычисляемое значение выдается в первом столбце и метка не выдается. Чтобы метка была выдана, включите в список выбора первым фиктивный столбец. | |
OF <ссылка на столбец> | Задает столбцы или выражения, функция от которого вычисляется. В конструкции OF можно сослаться на выражение в списке выбора, взяв его в двойные кавычки. Имя или псевдоним столбца в кавычки брать не надо. | |
ON <ссылка на место> | Задает событие, которое утилита SQL*Plus будет считать местом для вычисления. При ссылке на столбец его имя нельзя уточнять, - при необходимости надо использовать псевдонимы. При достижении места вычисления (т.е. когда изменяется значение столбца или выражения, извлекается новая строка или достигается конец отчета) команда COMPUTE выдает вычисленное значение и начинает вычисление сначала.
Если для одного и того же столбца задано несколько команд COMPUTE, применяется последняя из них. В конструкции ON можно сослаться на выражение в списке выбора, взяв его в двойные кавычки. Имя или псевдоним столбца в кавычки брать не надо. Если в качестве события задано ON ROW или ON REPORT, необходимо, чтобы в последней команде BREAK также использовался критерий разрыва ROW или REPORT. |