Примеры CORR
SELECT
CORR(alength, aheight) AS c_corr
FROM measure
CORR
SELECT
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_POP
COVAR_POP
SELECT
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_SAMP
COVAR_SAMP
SELECT
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_POP
STDDEV_POP
SELECT
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_SAMP
STDDEV_SAMP
SELECT
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_POP
VAR_POP
SELECT
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_SAMP
VAR_SAMP
SELECT
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_INTERCEPT
WITH 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