105 lines
1.6 KiB
SQL
105 lines
1.6 KiB
SQL
# name: test/sql/aggregate/aggregates/test_kurtosis.test
|
|
# description: Test kurtosis aggregate
|
|
# group: [aggregates]
|
|
|
|
statement ok
|
|
PRAGMA enable_verification
|
|
|
|
#Corner cases
|
|
statement error
|
|
select kurtosis()
|
|
----
|
|
|
|
query I
|
|
select kurtosis(NULL)
|
|
----
|
|
NULL
|
|
|
|
query I
|
|
select kurtosis(1)
|
|
----
|
|
NULL
|
|
|
|
statement error
|
|
select kurtosis(*)
|
|
----
|
|
|
|
query I
|
|
select kurtosis(i) from (values (0), (0), (0), (0), (0), (0)) tbl(i)
|
|
----
|
|
NULL
|
|
|
|
# out of range
|
|
statement error
|
|
select kurtosis(i) from (values (2e304), (2e305), (2e306), (2e307)) tbl(i)
|
|
----
|
|
|
|
# Constant Value (This should be an error)
|
|
query I
|
|
select kurtosis(10) from range (5)
|
|
----
|
|
NULL
|
|
|
|
#Empty Table
|
|
query I
|
|
select kurtosis(10) from range (5) where 1 == 0
|
|
----
|
|
NULL
|
|
|
|
statement ok
|
|
create table aggr(k int, v int, v2 int);
|
|
|
|
statement ok
|
|
insert into aggr values
|
|
(1, 10, null),
|
|
(2, 10, 11),
|
|
(2, 10, 15),
|
|
(2, 10, 18),
|
|
(2, 20, 22),
|
|
(2, 20, 25),
|
|
(2, 25, null),
|
|
(2, 30, 35),
|
|
(2, 30, 40),
|
|
(2, 30, 50),
|
|
(2, 30, 51);
|
|
|
|
query III
|
|
select kurtosis(k), kurtosis(v), kurtosis(v2) from aggr;
|
|
----
|
|
11.000000 -1.961428 -1.445120
|
|
|
|
query III
|
|
select kurtosis_pop(k), kurtosis_pop(v), kurtosis_pop(v2) from aggr;
|
|
----
|
|
6.100000 -1.676857 -1.358688
|
|
|
|
query I
|
|
with onetwo as (select range::float as v from range(1,3)) select kurtosis_pop(v) from onetwo;
|
|
----
|
|
-2.0
|
|
|
|
query I
|
|
select kurtosis(v2) from aggr group by v ORDER BY ALL;
|
|
----
|
|
-3.977599
|
|
NULL
|
|
NULL
|
|
NULL
|
|
|
|
# Window Function
|
|
query I rowsort
|
|
select kurtosis(v2) over (partition by v)
|
|
from aggr;
|
|
----
|
|
-3.977599
|
|
-3.977599
|
|
-3.977599
|
|
-3.977599
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|