FirebirdSQL logo

REGR_INTERCEPT()

Доступно в

DSQL

Синтаксис
REGR_INTERCEPT(<y>, <x>)
Table 1. Параметры функции REGR_INTERCEPT
Параметр Описание

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

Example 1. Прогнозирование объёмов продаж
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
...