Skip to main content
Last updated on

REGR_INTERCEPT

Description​

Returns the intercept of the linear regression line computed over non-null (y, x) pairs in a group, where x is the independent variable and y is the dependent variable. It is equivalent to AVG(y) - REGR_SLOPE(y, x) * AVG(x).

Syntax​

REGR_INTERCEPT(<y>, <x>)

Parameters​

ParameterDescription
<y>The dependent variable. Supported type: Double.
<x>The independent variable. Supported type: Double.

Return Value​

Returns a Double value representing the intercept of the linear regression line. If there are no rows in the group, or all rows contain NULLs for the expressions, the function returns NULL.

Example​

CREATE TABLE test_regr (
`id` int,
`x` double,
`y` double
) DUPLICATE KEY (`id`)
DISTRIBUTED BY HASH(`id`) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);

INSERT INTO test_regr VALUES
(1, 0, NULL),
(2, 1, 3),
(2, 2, 5),
(2, 3, 7),
(2, 4, 9),
(2, 5, NULL);
SELECT id, REGR_INTERCEPT(y, x) FROM test_regr GROUP BY id ORDER BY id;
+------+------------------------+
| id | REGR_INTERCEPT(y, x) |
+------+------------------------+
| 1 | NULL |
| 2 | 1.0 |
+------+------------------------+