Oracle Regression Functions
-- Regression Functions (REGR)

-- y = mx + c
-- Where m is slope and c is the y intercept

-- REGR_SLOPE (m),  REGR_INTERCEPT (y intercept)
-- REGR_R2
-- REGR_COUNT
-- REGR_AVGX,  REGR_AVGY

SELECT
   REGR_SLOPE(val1, val2)      m_slope
  ,REGR_INTERCEPT(val1, val2)  y_intercept_c  
  ,REGR_R2(val1, val2)         r2_value
  ,REGR_COUNT(val1, val2)      regr_cnt
  ,REGR_AVGX(val1, val2)       regr_avgx_
  ,REGR_AVGY(val1, val2)       regr_avgy_
FROM 
 (SELECT  2 val1, 5 val2  FROM  DUAL  UNION  
  SELECT  6 val1, 2 val2  FROM  DUAL  UNION
  SELECT  9 val1, 8 val2  FROM  DUAL  UNION
  SELECT  3 val1, 7 val2  FROM  DUAL
 )
;

Function Output

-- Regression functions ignore/exclude null values 

-- REGR_SXX(x, y) = REGR_COUNT(x, y) * VAR_POP(y) 
                  = 4 * 5.25 = 21

-- REGR_SXY(x, y) = REGR_COUNT(x, y) * COVAR_POP(x, y) 
                  = 4 * 1.25 = 5

-- REGR_SYY(x, y) = REGR_COUNT(x, y) * VAR_POP(x) 
                  = 4 * 7.5 = 30

SELECT
   REGR_COUNT(xval, yval)      regr_cnt
  ,VAR_POP(yval)               var_pop_y
  ,REGR_SXX(xval, yval)        regr_sxx_
  ,COVAR_POP(xval, yval)       covar_pop_xy
  ,REGR_SXY(xval, yval)        regr_sxy_
  ,VAR_POP(xval)               var_pop_x
  ,REGR_SYY(xval, yval)        regr_syy_
FROM 
 (SELECT  2 xval, 5 yval  FROM  DUAL  UNION  
  SELECT  6 xval, 2 yval  FROM  DUAL  UNION
  SELECT  9 xval, 8 yval  FROM  DUAL  UNION
  SELECT  NULL xval,  NULL yval  FROM  DUAL  UNION 
  SELECT  3 xval, 7 yval  FROM  DUAL
 )
;

Function Output

  Database Reference    Dual Table Queries    Regression Functions

  Oracle Views    SQL Functions

Oracle registered trademark of Oracle Corporation.

Last Revised On: December 20th, 2022






  56593