# name: test/sql/aggregate/aggregates/test_regression.test # description: Test Regression Functions # group: [aggregates] statement ok PRAGMA enable_verification query I select regr_avgx(NULL,NULL) ---- NULL query I select regr_avgx(1,1) ---- 1 #Corner cases statement error select regr_avgx() ---- statement error select regr_avgx(*) ---- statement error select regr_avgy() ---- query I select regr_avgy(NULL,NULL) ---- NULL query I select regr_avgy(1,1) ---- 1 statement error select regr_avgy(*) ---- statement error select regr_count() ---- query I select regr_count(NULL,NULL) ---- 0 query I select regr_count(1,1) ---- 1 statement error select regr_count(*) ---- statement error select regr_slope() ---- query I select regr_slope(NULL,NULL) ---- NULL query I select regr_slope(1,1) ---- NAN statement error select regr_slope(*) ---- statement error select regr_r2() ---- query I select regr_r2(NULL,NULL) ---- NULL query I select regr_r2(1,1) ---- NULL #Corner cases statement error select regr_r2(0, 1e230*i) from range(5) tbl(i); ---- statement error select regr_r2(1e230*i, i) from range(5) tbl(i); ---- query I select regr_r2(1e230*i, 0) from range(5) tbl(i); ---- NULL query I select regr_r2(0, i) from range(5) tbl(i); ---- 1 statement error select regr_r2(*) ---- statement error select regr_sxx() ---- statement error select regr_sxx(0, 2e230*i) from range(5) tbl(i) ---- query I select regr_sxx(2e230*i, 0) from range(5) tbl(i) ---- 0 query I select regr_sxx(NULL,NULL) ---- NULL query I select regr_sxx(1,1) ---- 0 statement error select regr_syy() ---- query I select regr_syy(NULL,NULL) ---- NULL query I select regr_syy(1,1) ---- 0 statement error select regr_sxy(*) ---- statement error select regr_sxy() ---- query I select regr_sxy(NULL,NULL) ---- NULL query I select regr_sxy(1,1) ---- 0 statement error select regr_syy(*) ---- statement error select regr_intercept() ---- query I select regr_intercept(NULL,NULL) ---- NULL query I select regr_intercept(1,1) ---- NULL statement error select regr_intercept(*) ---- statement ok create table aggr(k int, v decimal(10,2), v2 decimal(10, 2)); statement ok insert into aggr values(1, 10, null), (2, 10, 11), (2, 20, 22), (2, 25, null), (2, 30, 35); query II select k, regr_avgx(v, v2) from aggr group by k ORDER BY ALL; ---- 1 NULL 2 22.666667 query II select k, regr_avgy(v, v2) from aggr group by k ORDER BY ALL; ---- 1 NULL 2 20 query III select k, count(*), regr_count(v, v2) from aggr group by k ORDER BY ALL; ---- 1 1 0 2 4 3 query II select k, regr_slope(v, v2) from aggr group by k ORDER BY ALL; ---- 1 NULL 2 0.831409 query II select k, regr_r2(v, v2) from aggr group by k ORDER BY ALL; ---- 1 NULL 2 0.997691 query II select k, regr_sxx(v, v2) from aggr group by k ORDER BY ALL; ---- 1 NULL 2 288.666667 query II select k, regr_syy(v, v2) from aggr group by k ORDER BY ALL; ---- 1 NULL 2 200.000000 query II select k, regr_sxy(v, v2) from aggr group by k ORDER BY ALL; ---- 1 NULL 2 240.000000 query II select k, regr_intercept(v, v2) from aggr group by k ORDER BY ALL; ---- 1 NULL 2 1.154734 query I select regr_avgx(v, v2) from aggr ; ---- 22.666667 query I select regr_avgy(v, v2) from aggr ; ---- 20 query I select regr_count(v, v2) from aggr ; ---- 3 query I select regr_slope(v, v2) from aggr ; ---- 0.831409 query I select regr_r2(v, v2) from aggr ; ---- 0.997691 query I select regr_sxx(v, v2) from aggr ; ---- 288.666667 query I select regr_syy(v, v2) from aggr ; ---- 200.000000 query I select regr_sxy(v, v2) from aggr; ---- 240.000000 query I select regr_intercept(v, v2) from aggr; ---- 1.154734 # Window Function query I rowsort select regr_avgx(v, v2) over (partition by k) from aggr; ---- 22.666667 22.666667 22.666667 22.666667 NULL query I rowsort select regr_avgy(v, v2) over (partition by k) from aggr; ---- 20.000000 20.000000 20.000000 20.000000 NULL query I rowsort select regr_count(v, v2) over (partition by k) from aggr; ---- 0 3 3 3 3 query I rowsort select regr_slope(v, v2) over (partition by k) from aggr; ---- 0.831409 0.831409 0.831409 0.831409 NULL query I rowsort select regr_r2(v, v2) over (partition by k) from aggr; ---- 0.997691 0.997691 0.997691 0.997691 NULL query I rowsort select regr_sxx(v, v2) over (partition by k) from aggr; ---- 288.666667 288.666667 288.666667 288.666667 NULL query I rowsort select regr_syy(v, v2) over (partition by k) from aggr; ---- 200.000000 200.000000 200.000000 200.000000 NULL query I rowsort select regr_sxy(v, v2) over (partition by k) from aggr; ---- 240.000000 240.000000 240.000000 240.000000 NULL query I rowsort select regr_intercept(v, v2) over (partition by k) from aggr; ---- 1.154734 1.154734 1.154734 1.154734 NULL