1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
# name: test/sql/window/test_quantile_window.test_slow
# description: Moving QUANTILE coverage, fixed or variable 100 element frame for MEDIAN, IQR, and MAD
# group: [window]
# Common table
statement ok
create table rank100 as
select b % 100 as a, b from range(10000000) tbl(b)
# window_median_fixed_100
query I
select sum(m)
from (
select median(a) over (
order by b asc
rows between 100 preceding and current row) as m
from rank100
) q;
----
494997500
# window_median_variable_100
query I
select sum(m)
from (
select median(a) over (
order by b asc
rows between mod(b * 47, 521) preceding and 100 - mod(b * 47, 521) following) as m
from rank100
) q;
----
494989867
# window_iqr_fixed_100
query II
select min(iqr), max(iqr)
from (
select quantile_cont(a, [0.25, 0.5, 0.75]) over (
order by b asc
rows between 100 preceding and current row) as iqr
from rank100
) q;
----
[0.0, 0.0, 0.0] [25.0, 50.0, 75.0]
# window_iqr_variable_100
query II
select min(iqr), max(iqr)
from (
select quantile_cont(a, [0.25, 0.5, 0.75]) over (
order by b asc
rows between mod(b * 47, 521) preceding and 100 - mod(b * 47, 521) following) as iqr
from rank100
) q;
----
[0.0, 0.0, 0.0] [76.5, 84.0, 91.5]
# window_mad_fixed_100
query I
select sum(m)
from (
select mad(a) over (
order by b asc
rows between 100 preceding and current row) as m
from rank100
) q;
----
249998762.5
#
query I
select sum(m)
from (
select mad(a) over (
order by b asc
rows between mod(b * 47, 521) preceding and 100 - mod(b * 47, 521) following) as m
from rank100
) q;
----
249994596.000000
|