393 lines
4.7 KiB
SQL
393 lines
4.7 KiB
SQL
# 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
|