@@ -159,23 +159,27 @@ zxczcx 39 [null, "24324", "poipo", "efghi", "fsfd", "ffhfg", "efghi", "efghi", "
159
159
uwrteu 43 [null, "24324", "poipo", "efghi", "fsfd", "ffhfg", "efghi", "efghi", "dfgdf", "dkfhk", null, "sdfsd", "wqweq", "zxczcx", "uwrteu"] [0, 1, 6, 10, 10, 13, 20, 21, 23, 28, 29, 30, 32, 39, 43]
160
160
NULL 100 [null, "24324", "poipo", "efghi", "fsfd", "ffhfg", "efghi", "efghi", "dfgdf", "dkfhk", null, "sdfsd", "wqweq", "zxczcx", "uwrteu", null] [0, 1, 6, 10, 10, 13, 20, 21, 23, 28, 29, 30, 32, 39, 43, 100]
161
161
# With ROLLUP
162
+ # Originally, this query had just (ORDER BY f) - and all f
163
+ # values are NULL - so it was non-deterministic and showed
164
+ # differences across platforms due to unstable sorting. The new
165
+ # frame spec captures the same data but deterministically
162
166
SELECT i, f, JSON_ARRAYAGG(i) OVER w jarray_i, JSON_ARRAYAGG(f)
163
167
OVER w jarray_f FROM t1 GROUP BY i,f WITH ROLLUP HAVING GROUPING(f)=1
164
- WINDOW w AS (ORDER BY f);
168
+ WINDOW w AS (ORDER BY f, i ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING );
165
169
i f jarray_i jarray_f
166
- 1 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
167
- 10 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
168
- 11 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
169
- 13 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
170
- 15 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
171
- 2 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
172
- 3 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
173
- 4 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
174
- 5 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
175
- 8 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
176
- 9 NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
177
- NULL NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
178
- NULL NULL [null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, null ] [null, null, null, null, null, null, null, null, null, null, null, null, null]
170
+ NULL NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
171
+ NULL NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
172
+ 1 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
173
+ 2 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
174
+ 3 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
175
+ 4 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
176
+ 5 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
177
+ 8 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
178
+ 9 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
179
+ 10 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
180
+ 11 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
181
+ 13 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
182
+ 15 NULL [null, null, 1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15] [null, null, null, null, null, null, null, null, null, null, null, null, null]
179
183
# With other window functions
180
184
SELECT i, f, RANK() OVER w rank1, NTH_VALUE(i,3)
181
185
OVER w nth, LEAD(f, 2) OVER w lead1, LAG(f,2) OVER w lag1, JSON_ARRAYAGG(i)
0 commit comments