aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/sql/suites/window/win_by_all_aggregate.sql
blob: d144fc095d7bf564ba65d5487ef8424632c012ce (plain) (blame)
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
/* postgres can not */
/* syntax version 1 */
use plato;

$data = (select cast(key as uint32) as age, cast(subkey as uint32) as region, value as name from Input);

-- insert into Output
select
    region,
    name,
    sum(age) over w1 as sum,
    min(age) over w1 as min,
    max(age) over w1 as max,
    count(age) over w1 as count,
    count(*) over w1 as count_all,
    count_if(age>20) over w1 as count_if,
    some(age) over w1 as some,
    bit_and(age) over w1 as bit_and,
    bit_or(age) over w1 as bit_or,
    bit_xor(age) over w1 as bit_xor,
    bool_and(age>20) over w1 as bool_and,
    bool_or(age>20) over w1 as bool_or,
    avg(age) over w1 as avg,
    aggr_list(age) over w1 as `list`,
    min_by(age, name) over w1 as min_by,
    max_by(age, name) over w1 as max_by,
    nanvl(variance(age) over w1, -999.0) as variance,
    nanvl(stddev(age) over w1, -999.0) as stddev,
    nanvl(populationvariance(age) over w1, -999.0) as popvar,
    nanvl(stddevpopulation(age) over w1, -999.0) as popstddev,
    histogram(age) over w1 as hist,
    median(age) over w1 as median,
    percentile(age, 0.9) over w1 as perc90,
    aggregate_by(age, aggregation_factory("count")) over w1 as aggby
from $data
window w1 as (partition by region order by name desc)
order by region, name desc
;