summaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/sql/suites/select_yql/group_by_optionality.yql
blob: 9bb1a28f85ad317eee4e8bfd490087bd7a770c3f (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
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
PRAGMA YqlSelect = 'force';

SELECT Ensure(c, c == "Optional<Int64>", c)
FROM (
    SELECT FormatType(TypeOf(Sum(c))) AS c
    FROM (VALUES (1, 1, 1)) AS x(a, b, c)
);

SELECT Ensure(c, c == "Int64", c)
FROM (
    SELECT a, FormatType(TypeOf(Sum(c))) AS c
    FROM (VALUES (1, 1, 1)) AS x(a, b, c)
    GROUP BY a
);

SELECT Ensure(c, c == "Optional<Int64>", c)
FROM (
    SELECT a, FormatType(TypeOf(Sum(c))) AS c
    FROM (VALUES (1, 1, 1)) AS x(a, b, c)
    GROUP BY ROLLUP (a)
);

SELECT Ensure(c, c == "Optional<Int64>", c)
FROM (
    SELECT a, b, FormatType(TypeOf(Sum(c))) AS c
    FROM (VALUES (1, 1, 1)) AS x(a, b, c)
    GROUP BY ROLLUP (a, b)
);

SELECT Ensure(c, c == "Int64", c)
FROM (
    SELECT a, b, FormatType(TypeOf(Sum(c))) AS c
    FROM (VALUES (1, 1, 1)) AS x(a, b, c)
    GROUP BY GROUPING SETS (a, b)
);

SELECT Ensure(c, c == "Int64", c)
FROM (
    SELECT a, b, FormatType(TypeOf(Sum(c))) AS c
    FROM (VALUES (1, 1, 1)) AS x(a, b, c)
    GROUP BY GROUPING SETS ((a, b), (b))
);

SELECT Ensure(c, c == "Optional<Int64>", c)
FROM (
    SELECT a, b, FormatType(TypeOf(Sum(c))) AS c
    FROM (VALUES (1, 1, 1)) AS x(a, b, c)
    GROUP BY GROUPING SETS ((a, b), (b), ())
);

SELECT Ensure(d, d == "Int64", d)
FROM (
    SELECT FormatType(TypeOf(Sum(d))) AS d
    FROM (VALUES (1, 1, 1, 1)) AS x(a, b, c, d)
    GROUP BY
        a,
        GROUPING SETS (
            (b, c),
            (c),
            ()
        )
);

SELECT Ensure(d, d == "Int64", d)
FROM (
    SELECT FormatType(TypeOf(Sum(d))) AS d
    FROM (VALUES (1, 1, 1, 1)) AS x(a, b, c, d)
    GROUP BY
        GROUPING SETS (
            (b, c),
            (c),
            ()
        ),
        a
);