Примеры MIN
MINSELECT
dept_no,
MIN(salary)
FROM employee
GROUP BY dept_no
MINMINSELECT
dept_no,
MIN(salary)
FROM employee
GROUP BY dept_no
SUM()DSQL
SUM([ALL | DISTINCT] <expr>)
| Параметр | Описание |
|---|---|
expr |
Выражение.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION, DECFLOAT или масштабируемое целое (INTEGER, BIGINT или INT128) в зависимости от типа аргумента функции expr.Обычно, если это возможно, выбирается тип с большей вместимостью, чем тип выражения expr.
Функция SUM возвращает сумму элементов выборки, которые не равны NULL.
ALL является опцией по умолчанию — обрабатываются все значения из выборки, не содержащие NULL.При указании DISTINCT из выборки устраняются дубликаты, после чего осуществляется суммирование.
При пустой выборке, или при выборке из одних NULL функция возвратит NULL.
SUMSELECT
dept_no,
SUM(salary)
FROM employee
GROUP BY dept_no
Статистические функции являются агрегатными функциями.Эти функции не учитывают значения NULL.К аргументу статистической функции не применимы параметры ALL и DISTINCT.
Статистические функции часто используются совместно с предложением GROUP BY.
CORR()DSQL
CORR(<expr1>, <expr2>)
| Параметр | Описание |
|---|---|
expr1, expr2 |
Выражение возвращает числовой тип данных.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Функция CORR возвращает коэффициент корреляции для пары выражений, возвращающих числовые значения.
Функция CORR(<expr1>, <expr2>) эквивалентна
COVAR_POP(<expr1>, <expr2>) / (STDDEV_POP(<expr2>) * STDDEV_POP(<expr1>))
В статистическом смысле, корреляция — это степень связи между переменными.Связь между переменными означает, что значение одной переменной можно в определённой степени предсказать по значению другой.Коэффициент корреляции представляет степень корреляции в виде числа в диапазоне от -1 (высокая обратная корреляция) до 1 (высокая корреляция). Значение 0 соответствует отсутствию корреляции.
В случае если выборка записей пустая или содержит только значения NULL, результат будет содержать NULL.
CORRSELECT
CORR(alength, aheight) AS c_corr
FROM measure
COVAR_POP()DSQL
COVAR_POP(<expr1>, <expr2>)
| Параметр | Описание |
|---|---|
expr1, expr2 |
Выражение возвращает числовой тип данных.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Функция COVAR_POP возвращает ковариацию совокупности (population covariance) пар выражений с числовыми значениями.
Функция COVAR_POP(<expr1>, <expr2>) эквивалентна
(SUM(<expr1> * <expr2>) - SUM(<expr1>) * SUM(<expr2>) / COUNT(*)) / COUNT(*)
В случае если выборка записей пустая или содержит только значения NULL, результат будет содержать NULL.
COVAR_POPCOVAR_POPSELECT
COVAR_POP(alength, aheight) AS c_corr
FROM measure
COVAR_SAMP()DSQL
COVAR_SAMP(<expr1>, <expr2>)
| Параметр | Описание |
|---|---|
expr1, expr2 |
Выражение возвращает числовой тип данных.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Функция COVAR_SAMP возвращает выборочную ковариацию (sample covariance) пары выражений с числовыми значениями.
Функция COVAR_SAMP(<expr1>, <expr2>) эквивалентна
(SUM(<expr1> * <expr2>) - SUM(<expr1>) * SUM(<expr2>) / COUNT(*)) / (COUNT(*) - 1)
В случае если выборка записей пустая, содержит только 1 запись или содержит только значения NULL, результат будет содержать NULL.
COVAR_SAMPCOVAR_SAMPSELECT
COVAR_SAMP(alength, aheight) AS c_corr
FROM measure
STDDEV_POP()DSQL
STDDEV_POP(<expr>)
| Параметр | Описание |
|---|---|
expr |
Выражение возвращает числовой тип данных.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION или NUMERIC в зависимости от типа expr.
Функция STDDEV_POP возвращает среднеквадратичное отклонение для группы.Значения NULL пропускаются.
Функция STDDEV_POP(<expr>) эквивалентна
SQRT(VAR_POP(<expr>))
В случае если выборка записей пустая или содержит только значения NULL, результат будет содержать NULL.
STDDEV_POPSTDDEV_POPSELECT
dept_no,
STDDEV_POP(salary)
FROM employee
GROUP BY dept_no
STDDEV_SAMP()DSQL
STDDEV_SAMP(<expr>)
| Параметр | Описание |
|---|---|
expr |
Выражение возвращает числовой тип данных.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION или NUMERIC в зависимости от типа expr
Функция STDDEV_SAMP возвращает стандартное отклонение для группы.Значения NULL пропускаются.
Функция STDDEV_SAMP(<expr>) эквивалентна
SQRT(VAR_SAMP(<expr>))
В случае если выборка записей пустая, содержит только 1 запись или содержит только значения NULL, результат будет содержать NULL.
STDDEV_SAMPSTDDEV_SAMPSELECT
dept_no,
STDDEV_SAMP(salary)
FROM employee
GROUP BY dept_no
VAR_POP()DSQL
VAR_POP(<expr>)
| Параметр | Описание |
|---|---|
expr |
Выражение возвращает числовой тип данных.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION или NUMERIC в зависимости от типа expr
Функция VAR_POP возвращает выборочную дисперсию для группы.Значения NULL пропускаются.
Функция VAR_POP(<expr>) эквивалентна
(SUM(<expr> * <expr>) - SUM(<expr>) * SUM(<expr>) / COUNT(<expr>)) / COUNT(<expr>)
В случае если выборка записей пустая или содержит только значения NULL, результат будет содержать NULL.
VAR_POPVAR_POPSELECT
dept_no,
VAR_POP(salary)
FROM employee
GROUP BY dept_no
VAR_SAMP()DSQL
VAR_SAMP(<expr>)
| Параметр | Описание |
|---|---|
expr |
Выражение возвращает числовой тип данных.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION или NUMERIC в зависимости от типа expr
Функция VAR_SAMP возвращает несмещённую выборочную дисперсию для группы.Значения NULL пропускаются.
Функция VAR_SAMP(<expr>) эквивалентна
(SUM(<expr> * <expr>) - SUM(<expr>) * SUM(<expr>) / COUNT(<expr>)) / (COUNT(<expr>) - 1)
В случае если выборка записей пустая, содержит только 1 запись или содержит только значения NULL, результат будет содержать NULL.
VAR_SAMPVAR_SAMPSELECT
dept_no,
VAR_SAMP(salary)
FROM employee
GROUP BY dept_no
Функции линейной регрессии полезны для продолжения линии тренда.Линия тренда — это, как правило, закономерность, которой придерживается набор значений.Линия тренда полезна для прогнозирования будущих значений.Этот означает, что тренд будет продолжаться и в будущем.Для продолжения линии тренда необходимо знать угол наклона и точку пересечения с осью Y.Набор линейных функций включает функции для вычисления этих значений.
В синтаксисе функций, у интерпретируется в качестве переменной, зависящей от х.
REGR_AVGX()DSQL
REGR_AVGX ( <y>, <x> )
| Параметр | Описание |
|---|---|
y |
Зависимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
x |
Независимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Функция REGR_AVGX вычисляет среднее независимой переменной линии регрессии.
Функция REGR_AVGX(<y>, <x>) эквивалентна
SUM(<exprX>) / REGR_COUNT(<y>, <x>) <exprX> ::= CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <x> END
REGR_AVGY()DSQL
REGR_AVGY(<y>, <x>)
| Параметр | Описание |
|---|---|
y |
Зависимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
x |
Независимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Функция REGR_AVGY вычисляет среднее зависимой переменной линии регрессии.
Функция REGR_AVGY(<y>, <x>) эквивалентна
SUM(<exprY>) / REGR_COUNT(<y>, <x>) <exprY> ::= CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <y> END
REGR_COUNT()DSQL
REGR_COUNT(<y>, <x>)
| Параметр | Описание |
|---|---|
y |
Зависимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
x |
Независимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
BIGINT
Функция REGR_COUNT возвращает количество не пустых пар, используемых для создания линии регрессии.
Функция REGR_COUNT(<y>, <x>) эквивалентна
SUM(CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN 1 END)
См. также:[fblangref-aggfuncs-sum]
REGR_INTERCEPT()DSQL
REGR_INTERCEPT(<y>, <x>)
| Параметр | Описание |
|---|---|
y |
Зависимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
x |
Независимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Функция REGR_INTERCEPT вычисляет точку пересечения линии регрессии с осью Y.
Функция REGR_INTERCEPT(<y>, <x>) эквивалентна
REGR_AVGY(<y>, <x>) - REGR_SLOPE(<y>, <x>) * REGR_AVGX(<y>, <x>)
REGR_INTERCEPTWITH RECURSIVE years(byyear) AS (
SELECT 1991 FROM rdb$database UNION ALL
SELECT byyear+1 FROM years WHERE byyear < 2020
),
s AS (
SELECT EXTRACT(YEAR FROM order_date) AS byyear,
SUM(total_value) AS total_value
FROM sales GROUP BY 1
),
regr AS (
SELECT REGR_INTERCEPT(total_value, byyear) as intercept,
REGR_SLOPE(total_value, byyear) as slope
FROM s)
SELECT years.byyear AS byyear,
intercept + (slope * years.byyear) AS total_value
FROM years CROSS JOIN regr
BYYEAR TOTAL_VALUE ---------------------------- 1991 118377,35 1992 414557,62 1993 710737,89 1994 1006918,16 1995 1303098,43 1996 1599278,69 1997 1895458,96 1998 2191639,23 1999 2487819,50 2000 2783999,77 ...
REGR_R2()DSQL
REGR_R2(<y>, <x>)
| Параметр | Описание |
|---|---|
y |
Зависимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
x |
Независимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Функция REGR_R2 вычисляет коэффициент детерминации, или R-квадрат, линии регрессии.
Функция REGR_R2(<y>, <x>) эквивалентна
POWER(CORR(<y>, <x>), 2)
REGR_SLOPE()DSQL
REGR_SLOPE(<y>, <x>)
| Параметр | Описание |
|---|---|
y |
Зависимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
x |
Независимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Функция REGR_SLOPE вычисляет угол наклона линии регрессии.
Функция REGR_SLOPE(<y>, <x>) эквивалентна
COVAR_POP(<y>, <x>) / VAR_POP(<exprX>) <exprX> :== CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <x> END
REGR_SXX()DSQL
REGR_SXX(<y>, <x>)
| Параметр | Описание |
|---|---|
y |
Зависимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
x |
Независимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Диагностическая статистика, используемая для анализа регрессии.
Функция REGR_SXX(<y>, <x>) вычисляется следующим образом:
REGR_COUNT(<y>, <x>) * VAR_POP(<exprX>) <exprX> :== CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <x> END
REGR_SXY()DSQL
REGR_SXY(<y>, <x>)
| Параметр | Описание |
|---|---|
y |
Зависимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
x |
Независимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Диагностическая статистика, используемая для анализа регрессии.
Функция REGR_SXY(<y>, <x>) вычисляется следующим образом:
REGR_COUNT(<y>, <x>) * COVAR_POP(<y>, <x>)
REGR_SYY()DSQL
REGR_SYY(<y>, <x>)
| Параметр | Описание |
|---|---|
y |
Зависимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
x |
Независимая переменная линии регрессии.Может содержать столбец таблицы, константу, переменную, выражение, неагрегатную функцию или UDF, которая возвращает числовой тип данных.Агрегатные функции в качестве выражения не допускаются. |
DOUBLE PRECISION
Диагностическая статистика, используемая для анализа регрессии.
Функция REGR_SYY(<y>, <x>) вычисляется следующим образом:
REGR_COUNT(<y>, <x>) * VAR_POP(<exprY>) <exprY> :== CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <y> END