Skip to main content

REGR_SLOPE

Description

Returns the slope 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 COVAR_POP(y, x) / VAR_POP(x).

Syntax

REGR_SLOPE(<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 slope 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_SLOPE(y, x) FROM test_regr GROUP BY id ORDER BY id;
+------+--------------------+
| id | REGR_SLOPE(y, x) |
+------+--------------------+
| 1 | NULL |
| 2 | 2.0 |
+------+--------------------+