FirebirdSQL logo

REGR_INTERCEPT()

Disponible en

DSQL

Syntaxe
REGR_INTERCEPT(<y>, <x>)
Table 1. paramètres de fonction REGR_INTERCEPT
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable indépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées en tant qu’expression ne sont pas autorisées.

type de résultat de retour

DOUBLE PRECISION

La fonction REGR_INTERCEPT calcule le point d’intersection de la ligne de régression avec l’axe des ordonnées.

La fonction REGR_INTERCEPT(<y>, <x>) est équivalente à

REGR_AVGY(<y>, <x>) - REGR_SLOPE(<y>, <x>) * REGR_AVGX(<y>, <x>)

Exemples REGR_INTERCEPT

Example 1. Prévision des volumes de vente
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
...