1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/* syntax version 1 */
/* postgres can not */
USE plato;
$input = (select AsStruct(
key as key,
Just(subkey) as subkey,
Just(value) as value) as nums from Input);
SELECT
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("count")) as count,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("min")) as min,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("max")) as max,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("sum")) as sum,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("avg")) as avg,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("stddev")) as stddev,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("percentile", 0.5)) as p50,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("aggregate_list")) as agg_list,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("aggregate_list_distinct")) as agg_list_distinct,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("mode")) as mode,
MULTI_AGGREGATE_BY(nums, AGGREGATION_FACTORY("top", 3)) as top,
FROM $input;
|