0001
0002
0003
0004
0005
0006 create or replace temporary view nested as values
0007 (1, array(32, 97), array(array(12, 99), array(123, 42), array(1))),
0008 (2, array(77, -76), array(array(6, 96, 65), array(-1, -2))),
0009 (3, array(12), array(array(17)))
0010 as t(x, ys, zs);
0011
0012
0013 select upper(x -> x) as v;
0014
0015
0016 select transform(zs, z -> z) as v from nested;
0017
0018
0019 select transform(ys, y -> y * y) as v from nested;
0020
0021
0022 select transform(ys, (y, i) -> y + i) as v from nested;
0023
0024
0025 select transform(zs, z -> concat(ys, z)) as v from nested;
0026
0027
0028 select transform(ys, 0) as v from nested;
0029
0030
0031 select transform(cast(null as array<int>), x -> x + 1) as v;
0032
0033
0034 select filter(ys, y -> y > 30) as v from nested;
0035
0036
0037 select filter(cast(null as array<int>), y -> true) as v;
0038
0039
0040 select transform(zs, z -> filter(z, zz -> zz > 50)) as v from nested;
0041
0042
0043 select aggregate(ys, 0, (y, a) -> y + a + x) as v from nested;
0044
0045
0046 select aggregate(ys, (0 as sum, 0 as n), (acc, x) -> (acc.sum + x, acc.n + 1), acc -> acc.sum / acc.n) as v from nested;
0047
0048
0049 select transform(zs, z -> aggregate(z, 1, (acc, val) -> acc * val * size(z))) as v from nested;
0050
0051
0052 select aggregate(cast(null as array<int>), 0, (a, y) -> a + y + 1, a -> a + 2) as v;
0053
0054
0055 select exists(ys, y -> y > 30) as v from nested;
0056
0057
0058 select exists(cast(null as array<int>), y -> y > 30) as v;
0059
0060
0061 select zip_with(ys, zs, (a, b) -> a + size(b)) as v from nested;
0062
0063
0064 select zip_with(array('a', 'b', 'c'), array('d', 'e', 'f'), (x, y) -> concat(x, y)) as v;
0065
0066
0067 select zip_with(array('a'), array('d', null, 'f'), (x, y) -> coalesce(x, y)) as v;
0068
0069 create or replace temporary view nested as values
0070 (1, map(1, 1, 2, 2, 3, 3)),
0071 (2, map(4, 4, 5, 5, 6, 6))
0072 as t(x, ys);
0073
0074
0075 select transform_keys(ys, (k, v) -> k) as v from nested;
0076
0077
0078 select transform_keys(ys, (k, v) -> k + 1) as v from nested;
0079
0080
0081 select transform_keys(ys, (k, v) -> k + v) as v from nested;
0082
0083
0084 select transform_values(ys, (k, v) -> v) as v from nested;
0085
0086
0087 select transform_values(ys, (k, v) -> v + 1) as v from nested;
0088
0089
0090 select transform_values(ys, (k, v) -> k + v) as v from nested;
0091
0092
0093 select transform(ys, all -> all * all) as v from values (array(32, 97)) as t(ys);
0094 select transform(ys, (all, i) -> all + i) as v from values (array(32, 97)) as t(ys);