polardbxengine/mysql-test/r/lead_lag_explain.result

5695 lines
155 KiB
Plaintext

# Test of SQL window functions NTH_VALUE
# ----------------------------------------------------------------------
SET NAMES utf8mb4;
CREATE TABLE t1 (d DOUBLE, id INT, sex CHAR(1), n INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(n));
INSERT INTO t1(d, id, sex) VALUES (1.0, 1, 'M'),
(2.0, 2, 'F'),
(3.0, 3, 'F'),
(4.0, 4, 'F'),
(5.0, 5, 'M'),
(NULL, NULL, 'M'),
(10.0, 10, NULL),
(10.0, 10, NULL),
(11.0, 11, NULL);
ANALYZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 analyze status OK
Ok, default semantics:
First without default:
EXPLAIN FORMAT=JSON SELECT id, sex, LEAD(id, 1) RESPECT NULLS OVER () FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,1) OVER () AS `LEAD(id, 1) RESPECT NULLS OVER ()` from `test`.`t1`
EXPLAIN FORMAT=JSON SELECT id, sex, LAG(id, 1) RESPECT NULLS OVER () FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lag"
]
}
],
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,lag(`test`.`t1`.`id`,1) OVER () AS `LAG(id, 1) RESPECT NULLS OVER ()` from `test`.`t1`
EXPLAIN FORMAT=JSON SELECT id, sex, LEAD(id, 0) RESPECT NULLS OVER () FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,0) OVER () AS `LEAD(id, 0) RESPECT NULLS OVER ()` from `test`.`t1`
Now with default:
EXPLAIN FORMAT=JSON SELECT id, sex, LEAD(id, 1, id) RESPECT NULLS OVER () FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,1,`test`.`t1`.`id`) OVER () AS `LEAD(id, 1, id) RESPECT NULLS OVER ()` from `test`.`t1`
EXPLAIN FORMAT=JSON SELECT id, sex, LAG(id, 1, id) RESPECT NULLS OVER () FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lag"
]
}
],
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,lag(`test`.`t1`.`id`,1,`test`.`t1`.`id`) OVER () AS `LAG(id, 1, id) RESPECT NULLS OVER ()` from `test`.`t1`
EXPLAIN FORMAT=JSON SELECT id, sex, LEAD(id, 0, 7) RESPECT NULLS OVER () FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,0,7) OVER () AS `LEAD(id, 0, 7) RESPECT NULLS OVER ()` from `test`.`t1`
EXPLAIN FORMAT=JSON SELECT n, id, LEAD(id, 1, 3) OVER
(ORDER BY id DESC ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) L FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window '<unnamed window>' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`n` AS `n`,`test`.`t1`.`id` AS `id`,lead(`test`.`t1`.`id`,1,3) OVER (ORDER BY `test`.`t1`.`id` desc ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) AS `L` from `test`.`t1`
EXPLAIN FORMAT=JSON SELECT n, id, LAG(id, 0, n*n) OVER
(ORDER BY id DESC ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) L FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lag' ignores the frame clause of window '<unnamed window>' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`n` AS `n`,`test`.`t1`.`id` AS `id`,lag(`test`.`t1`.`id`,0,(`test`.`t1`.`n` * `test`.`t1`.`n`)) OVER (ORDER BY `test`.`t1`.`id` desc ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) AS `L` from `test`.`t1`
EXPLAIN FORMAT=JSON SELECT n, id, LAG(id, 1, n*n) OVER
(ORDER BY id DESC ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) L FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lag' ignores the frame clause of window '<unnamed window>' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`n` AS `n`,`test`.`t1`.`id` AS `id`,lag(`test`.`t1`.`id`,1,(`test`.`t1`.`n` * `test`.`t1`.`n`)) OVER (ORDER BY `test`.`t1`.`id` desc ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) AS `L` from `test`.`t1`
EXPLAIN FORMAT=JSON SELECT n, id, LEAD(id, 1, n*n) OVER
(ORDER BY id DESC ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) L FROM t1;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window '<unnamed window>' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`n` AS `n`,`test`.`t1`.`id` AS `id`,lead(`test`.`t1`.`id`,1,(`test`.`t1`.`n` * `test`.`t1`.`n`)) OVER (ORDER BY `test`.`t1`.`id` desc ROWS BETWEEN CURRENT ROW AND 2 FOLLOWING) AS `L` from `test`.`t1`
Check imcompatible character sets
CREATE TABLE t (c1 CHAR(10) CHARACTER SET big5,
i INT,
c2 VARCHAR(10) CHARACTER SET euckr);
DROP TABLE t;
Check default char set & collation promotion to result
CREATE TABLE t (c1 CHAR(10) CHARACTER SET utf8mb4,
i INT,
c2 VARCHAR(10) CHARACTER SET latin1);
INSERT INTO t VALUES('A', 1, '1');
INSERT INTO t VALUES('A', 3, '3');
INSERT INTO t VALUES(x'F09F90AC' /* dolphin */, 5, null);
INSERT INTO t VALUES('A', 5, null);
INSERT INTO t VALUES(null, 10, '0');
ANALYZE TABLE t;
Table Op Msg_type Msg_text
test.t analyze status OK
Result sets should contain dolphin in columns c1 and l1.
EXPLAIN FORMAT=JSON SELECT c1, c2, LEAD(c1, 0, c2) OVER () l0 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "0.75"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 5,
"rows_produced_per_join": 5,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.50",
"prefix_cost": "0.75",
"data_read_per_join": "320"
},
"used_columns": [
"c1",
"c2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t`.`c1` AS `c1`,`test`.`t`.`c2` AS `c2`,lead(`test`.`t`.`c1`,0,convert(`test`.`t`.`c2` using utf8mb4)) OVER () AS `l0` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT c1, c2, LEAD(c1, 1, c2) OVER () l1 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "0.75"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 5,
"rows_produced_per_join": 5,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.50",
"prefix_cost": "0.75",
"data_read_per_join": "320"
},
"used_columns": [
"c1",
"c2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t`.`c1` AS `c1`,`test`.`t`.`c2` AS `c2`,lead(`test`.`t`.`c1`,1,convert(`test`.`t`.`c2` using utf8mb4)) OVER () AS `l1` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT c1, c2, LEAD(c2, 1, c1) OVER () l1 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "0.75"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 5,
"rows_produced_per_join": 5,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.50",
"prefix_cost": "0.75",
"data_read_per_join": "320"
},
"used_columns": [
"c1",
"c2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t`.`c1` AS `c1`,`test`.`t`.`c2` AS `c2`,lead(convert(`test`.`t`.`c2` using utf8mb4),1,`test`.`t`.`c1`) OVER () AS `l1` from `test`.`t`
Use CREATE TABLE AS to show type of the resulting LEAD function
CREATE TABLE tt AS SELECT LEAD(c1, 0, c2) OVER () c FROM t;
CREATE TABLE ts AS SELECT LEAD(c2, 1, c1) OVER () c FROM t;
Both tables should have c as VARCHAR(10) CHARACTER SET utf8mb4
even though only c1 has that type.
SHOW CREATE TABLE tt;
Table Create Table
tt CREATE TABLE `tt` (
`c` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
SHOW CREATE TABLE ts;
Table Create Table
ts CREATE TABLE `ts` (
`c` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DROP TABLE t, tt, ts;
Check non obvious type pairs, comparing with IFNULL whose behavior
we emulate when combining types in LEAD/LAG with default value.
CREATE TABLE t (c1 VARCHAR(10),
j1 JSON,
g1 POINT,
i1 INT,
b1 BLOB,
d1 DOUBLE,
e1 DECIMAL(5,4),
e2 DECIMAL(5,2));
INSERT INTO t VALUES (null, '[6]', ST_POINTFROMTEXT('POINT(6 6)'), 6, '6', 6.0, 10.0/3, 20.0/3),
('7', null , ST_POINTFROMTEXT('POINT(7 7)'), 7, '7', 7.0, 10.0/3, 20.0/3),
('8', '[8]' , null, 7, '8', 8.0, 10.0/3, 20.0/3),
('9', '[9]' , ST_POINTFROMTEXT('POINT(9 9)'), null, '9', 9.0, 10.0/3, 20.0/3),
('0', '[0]' , ST_POINTFROMTEXT('POINT(0 0)'), 0, null, 0.0, 10.0/3, 20.0/3),
('1', '[1]' , ST_POINTFROMTEXT('POINT(1 1)'), 1, '1', null, 10.0/3, 20.0/3),
('2', '[2]' , ST_POINTFROMTEXT('POINT(2 2)'), 2, '2', 2.0, null, 20.0/3),
('3', '[3]' , ST_POINTFROMTEXT('POINT(3 3)'), 3, '3', 3.0, 10.0/3, null);
Warnings:
Note 1265 Data truncated for column 'e1' at row 1
Note 1265 Data truncated for column 'e2' at row 1
Note 1265 Data truncated for column 'e1' at row 2
Note 1265 Data truncated for column 'e2' at row 2
Note 1265 Data truncated for column 'e1' at row 3
Note 1265 Data truncated for column 'e2' at row 3
Note 1265 Data truncated for column 'e1' at row 4
Note 1265 Data truncated for column 'e2' at row 4
Note 1265 Data truncated for column 'e1' at row 5
Note 1265 Data truncated for column 'e2' at row 5
Note 1265 Data truncated for column 'e1' at row 6
Note 1265 Data truncated for column 'e2' at row 6
Note 1265 Data truncated for column 'e2' at row 7
Note 1265 Data truncated for column 'e1' at row 8
ANALYZE TABLE t;
Table Op Msg_type Msg_text
test.t analyze status OK
EXPLAIN FORMAT=JSON SELECT LEAD(c1, 0, j1) OVER () lcj, IFNULL(c1, j1) ifn_cj FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"j1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`c1`,0,`test`.`t`.`j1`) OVER () AS `lcj`,ifnull(`test`.`t`.`c1`,`test`.`t`.`j1`) AS `ifn_cj` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(c1, 0, g1) OVER () lcg, IFNULL(c1, g1) ifn_cg FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"g1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`c1`,0,`test`.`t`.`g1`) OVER () AS `lcg`,ifnull(`test`.`t`.`c1`,`test`.`t`.`g1`) AS `ifn_cg` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(c1, 0, i1) OVER () lci, IFNULL(c1, i1) ifn_ci FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"i1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`c1`,0,`test`.`t`.`i1`) OVER () AS `lci`,ifnull(`test`.`t`.`c1`,`test`.`t`.`i1`) AS `ifn_ci` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(c1, 0, b1) OVER () lcb, IFNULL(c1, b1) ifn_cb FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"b1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`c1`,0,`test`.`t`.`b1`) OVER () AS `lcb`,ifnull(`test`.`t`.`c1`,`test`.`t`.`b1`) AS `ifn_cb` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(c1, 0, d1) OVER () lcd, IFNULL(c1, d1) ifn_cd FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`c1`,0,`test`.`t`.`d1`) OVER () AS `lcd`,ifnull(`test`.`t`.`c1`,`test`.`t`.`d1`) AS `ifn_cd` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(c1, 0, e1) OVER () lce1, IFNULL(c1, e1) ifn_ce1 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`c1`,0,`test`.`t`.`e1`) OVER () AS `lce1`,ifnull(`test`.`t`.`c1`,`test`.`t`.`e1`) AS `ifn_ce1` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(c1, 0, e2) OVER () lce2, IFNULL(c1, e2) ifn_ce2 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`c1`,0,`test`.`t`.`e2`) OVER () AS `lce2`,ifnull(`test`.`t`.`c1`,`test`.`t`.`e2`) AS `ifn_ce2` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(j1, 0, c1) OVER () ljc, IFNULL(j1, c1) ifn_jc FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"j1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`j1`,0,`test`.`t`.`c1`) OVER () AS `ljc`,ifnull(`test`.`t`.`j1`,`test`.`t`.`c1`) AS `ifn_jc` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(j1, 0, g1) OVER () ljg, IFNULL(j1, g1) ifn_jg FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"g1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`j1`,0,`test`.`t`.`g1`) OVER () AS `ljg`,ifnull(`test`.`t`.`j1`,`test`.`t`.`g1`) AS `ifn_jg` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(j1, 0, i1) OVER () lji, IFNULL(j1, i1) ifn_ji FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"i1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`j1`,0,`test`.`t`.`i1`) OVER () AS `lji`,ifnull(`test`.`t`.`j1`,`test`.`t`.`i1`) AS `ifn_ji` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(j1, 0, b1) OVER () ljb, IFNULL(j1, b1) ifn_jb FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"b1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`j1`,0,`test`.`t`.`b1`) OVER () AS `ljb`,ifnull(`test`.`t`.`j1`,`test`.`t`.`b1`) AS `ifn_jb` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(j1, 0, d1) OVER () ljd, IFNULL(j1, d1) ifn_jd FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`j1`,0,`test`.`t`.`d1`) OVER () AS `ljd`,ifnull(`test`.`t`.`j1`,`test`.`t`.`d1`) AS `ifn_jd` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(j1, 0, e1) OVER () lje1, IFNULL(j1, e1) ifn_je1 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`j1`,0,`test`.`t`.`e1`) OVER () AS `lje1`,ifnull(`test`.`t`.`j1`,`test`.`t`.`e1`) AS `ifn_je1` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(j1, 0, e2) OVER () lje2, IFNULL(j1, e2) ifn_je2 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`j1`,0,`test`.`t`.`e2`) OVER () AS `lje2`,ifnull(`test`.`t`.`j1`,`test`.`t`.`e2`) AS `ifn_je2` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(g1, 0, c1) OVER () lgc, IFNULL(g1, c1) ifn_gc FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"g1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`g1`,0,`test`.`t`.`c1`) OVER () AS `lgc`,ifnull(`test`.`t`.`g1`,`test`.`t`.`c1`) AS `ifn_gc` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(g1, 0, j1) OVER () lgj, IFNULL(g1, j1) ifn_gj FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"g1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`g1`,0,`test`.`t`.`j1`) OVER () AS `lgj`,ifnull(`test`.`t`.`g1`,`test`.`t`.`j1`) AS `ifn_gj` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(g1, 0, i1) OVER () lgi, IFNULL(g1, i1) ifn_gi FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"i1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`g1`,0,`test`.`t`.`i1`) OVER () AS `lgi`,ifnull(`test`.`t`.`g1`,`test`.`t`.`i1`) AS `ifn_gi` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(g1, 0, b1) OVER () lgb, IFNULL(g1, b1) ifn_gb FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"b1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`g1`,0,`test`.`t`.`b1`) OVER () AS `lgb`,ifnull(`test`.`t`.`g1`,`test`.`t`.`b1`) AS `ifn_gb` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(g1, 0, d1) OVER () lgd, IFNULL(g1, d1) ifn_gd FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`g1`,0,`test`.`t`.`d1`) OVER () AS `lgd`,ifnull(`test`.`t`.`g1`,`test`.`t`.`d1`) AS `ifn_gd` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(g1, 0, e1) OVER () lge1, IFNULL(g1, e1) ifn_ge1 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`g1`,0,`test`.`t`.`e1`) OVER () AS `lge1`,ifnull(`test`.`t`.`g1`,`test`.`t`.`e1`) AS `ifn_ge1` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(g1, 0, e2) OVER () lge2, IFNULL(g1, e2) ifn_ge2 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`g1`,0,`test`.`t`.`e2`) OVER () AS `lge2`,ifnull(`test`.`t`.`g1`,`test`.`t`.`e2`) AS `ifn_ge2` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(i1, 0, c1) OVER () lic, IFNULL(i1, c1) ifn_ic FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"i1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`i1`,0,`test`.`t`.`c1`) OVER () AS `lic`,ifnull(`test`.`t`.`i1`,`test`.`t`.`c1`) AS `ifn_ic` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(i1, 0, j1) OVER () lij, IFNULL(i1, j1) ifn_ij FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"i1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`i1`,0,`test`.`t`.`j1`) OVER () AS `lij`,ifnull(`test`.`t`.`i1`,`test`.`t`.`j1`) AS `ifn_ij` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(i1, 0, g1) OVER () lig, IFNULL(i1, g1) ifn_ig FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"i1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`i1`,0,`test`.`t`.`g1`) OVER () AS `lig`,ifnull(`test`.`t`.`i1`,`test`.`t`.`g1`) AS `ifn_ig` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(i1, 0, b1) OVER () lib, IFNULL(i1, b1) ifn_ib FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"i1",
"b1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`i1`,0,`test`.`t`.`b1`) OVER () AS `lib`,ifnull(`test`.`t`.`i1`,`test`.`t`.`b1`) AS `ifn_ib` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(i1, 0, d1) OVER () lid, IFNULL(i1, d1) ifn_id FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"i1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`i1`,0,`test`.`t`.`d1`) OVER () AS `lid`,ifnull(`test`.`t`.`i1`,`test`.`t`.`d1`) AS `ifn_id` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(i1, 0, e1) OVER () lie1, IFNULL(i1, e1) ifn_ie1 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"i1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`i1`,0,`test`.`t`.`e1`) OVER () AS `lie1`,ifnull(`test`.`t`.`i1`,`test`.`t`.`e1`) AS `ifn_ie1` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(i1, 0, e2) OVER () lie2, IFNULL(i1, e2) ifn_ie2 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"i1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`i1`,0,`test`.`t`.`e2`) OVER () AS `lie2`,ifnull(`test`.`t`.`i1`,`test`.`t`.`e2`) AS `ifn_ie2` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(b1, 0, c1) OVER () lbc, IFNULL(b1, c1) ifn_bc FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"b1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`b1`,0,`test`.`t`.`c1`) OVER () AS `lbc`,ifnull(`test`.`t`.`b1`,`test`.`t`.`c1`) AS `ifn_bc` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(b1, 0, j1) OVER () lbj, IFNULL(b1, j1) ifn_bj FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"b1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`b1`,0,`test`.`t`.`j1`) OVER () AS `lbj`,ifnull(`test`.`t`.`b1`,`test`.`t`.`j1`) AS `ifn_bj` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(b1, 0, g1) OVER () lbg, IFNULL(b1, g1) ifn_bg FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"b1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`b1`,0,`test`.`t`.`g1`) OVER () AS `lbg`,ifnull(`test`.`t`.`b1`,`test`.`t`.`g1`) AS `ifn_bg` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(b1, 0, i1) OVER () lbi, IFNULL(b1, i1) ifn_bi FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"i1",
"b1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`b1`,0,`test`.`t`.`i1`) OVER () AS `lbi`,ifnull(`test`.`t`.`b1`,`test`.`t`.`i1`) AS `ifn_bi` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(b1, 0, d1) OVER () lbd, IFNULL(b1, d1) ifn_bd FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"b1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`b1`,0,`test`.`t`.`d1`) OVER () AS `lbd`,ifnull(`test`.`t`.`b1`,`test`.`t`.`d1`) AS `ifn_bd` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(b1, 0, e1) OVER () lbe1, IFNULL(b1, e1) ifn_be1 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"b1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`b1`,0,`test`.`t`.`e1`) OVER () AS `lbe1`,ifnull(`test`.`t`.`b1`,`test`.`t`.`e1`) AS `ifn_be1` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(b1, 0, e2) OVER () lbe2, IFNULL(b1, e2) ifn_be2 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"b1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`b1`,0,`test`.`t`.`e2`) OVER () AS `lbe2`,ifnull(`test`.`t`.`b1`,`test`.`t`.`e2`) AS `ifn_be2` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(d1, 0, c1) OVER () ldc, IFNULL(d1, c1) ifn_dc FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`d1`,0,`test`.`t`.`c1`) OVER () AS `ldc`,ifnull(`test`.`t`.`d1`,`test`.`t`.`c1`) AS `ifn_dc` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(d1, 0, j1) OVER () ldj, IFNULL(d1, j1) ifn_dj FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`d1`,0,`test`.`t`.`j1`) OVER () AS `ldj`,ifnull(`test`.`t`.`d1`,`test`.`t`.`j1`) AS `ifn_dj` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(d1, 0, g1) OVER () ldg, IFNULL(d1, g1) ifn_dg FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`d1`,0,`test`.`t`.`g1`) OVER () AS `ldg`,ifnull(`test`.`t`.`d1`,`test`.`t`.`g1`) AS `ifn_dg` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(d1, 0, i1) OVER () ldi, IFNULL(d1, i1) ifn_di FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"i1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`d1`,0,`test`.`t`.`i1`) OVER () AS `ldi`,ifnull(`test`.`t`.`d1`,`test`.`t`.`i1`) AS `ifn_di` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(d1, 0, b1) OVER () ldd, IFNULL(d1, b1) ifn_db FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"b1",
"d1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`d1`,0,`test`.`t`.`b1`) OVER () AS `ldd`,ifnull(`test`.`t`.`d1`,`test`.`t`.`b1`) AS `ifn_db` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(d1, 0, e1) OVER () lde1, IFNULL(d1, e1) ifn_de1 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"d1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`d1`,0,`test`.`t`.`e1`) OVER () AS `lde1`,ifnull(`test`.`t`.`d1`,`test`.`t`.`e1`) AS `ifn_de1` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(d1, 0, e2) OVER () lde2, IFNULL(d1, e2) ifn_de2 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"d1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`d1`,0,`test`.`t`.`e2`) OVER () AS `lde2`,ifnull(`test`.`t`.`d1`,`test`.`t`.`e2`) AS `ifn_de2` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e1, 0, c1) OVER () le1c, IFNULL(e1, c1) ifn_e1c FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e1`,0,`test`.`t`.`c1`) OVER () AS `le1c`,ifnull(`test`.`t`.`e1`,`test`.`t`.`c1`) AS `ifn_e1c` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e1, 0, j1) OVER () le1j, IFNULL(e1, j1) ifn_e1j FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e1`,0,`test`.`t`.`j1`) OVER () AS `le1j`,ifnull(`test`.`t`.`e1`,`test`.`t`.`j1`) AS `ifn_e1j` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e1, 0, g1) OVER () le1g, IFNULL(e1, g1) ifn_e1g FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e1`,0,`test`.`t`.`g1`) OVER () AS `le1g`,ifnull(`test`.`t`.`e1`,`test`.`t`.`g1`) AS `ifn_e1g` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e1, 0, i1) OVER () le1i, IFNULL(e1, i1) ifn_e1i FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"i1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e1`,0,`test`.`t`.`i1`) OVER () AS `le1i`,ifnull(`test`.`t`.`e1`,`test`.`t`.`i1`) AS `ifn_e1i` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e1, 0, b1) OVER () le1d, IFNULL(e1, b1) ifn_e1d FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"b1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e1`,0,`test`.`t`.`b1`) OVER () AS `le1d`,ifnull(`test`.`t`.`e1`,`test`.`t`.`b1`) AS `ifn_e1d` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e1, 0, d1) OVER () le1d, IFNULL(e1, d1) ifn_e1d FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"d1",
"e1"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e1`,0,`test`.`t`.`d1`) OVER () AS `le1d`,ifnull(`test`.`t`.`e1`,`test`.`t`.`d1`) AS `ifn_e1d` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e1, 0, e2) OVER () le1e2, IFNULL(e1, e2) ifn_e1e2 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"e1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e1`,0,`test`.`t`.`e2`) OVER () AS `le1e2`,ifnull(`test`.`t`.`e1`,`test`.`t`.`e2`) AS `ifn_e1e2` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e2, 0, c1) OVER () le2c, IFNULL(e2, c1) ifn_e2c FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"c1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e2`,0,`test`.`t`.`c1`) OVER () AS `le2c`,ifnull(`test`.`t`.`e2`,`test`.`t`.`c1`) AS `ifn_e2c` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e2, 0, j1) OVER () le2j, IFNULL(e2, j1) ifn_e2j FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"j1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e2`,0,`test`.`t`.`j1`) OVER () AS `le2j`,ifnull(`test`.`t`.`e2`,`test`.`t`.`j1`) AS `ifn_e2j` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e2, 0, g1) OVER () le2g, IFNULL(e2, g1) ifn_e2g FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"g1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e2`,0,`test`.`t`.`g1`) OVER () AS `le2g`,ifnull(`test`.`t`.`e2`,`test`.`t`.`g1`) AS `ifn_e2g` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e2, 0, i1) OVER () le2i, IFNULL(e2, i1) ifn_e2i FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"i1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e2`,0,`test`.`t`.`i1`) OVER () AS `le2i`,ifnull(`test`.`t`.`e2`,`test`.`t`.`i1`) AS `ifn_e2i` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e2, 0, b1) OVER () le2d, IFNULL(e2, b1) ifn_e2d FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"b1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e2`,0,`test`.`t`.`b1`) OVER () AS `le2d`,ifnull(`test`.`t`.`e2`,`test`.`t`.`b1`) AS `ifn_e2d` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e2, 0, d1) OVER () le2d, IFNULL(e2, d1) ifn_e2d FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"d1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e2`,0,`test`.`t`.`d1`) OVER () AS `le2d`,ifnull(`test`.`t`.`e2`,`test`.`t`.`d1`) AS `ifn_e2d` from `test`.`t`
EXPLAIN FORMAT=JSON SELECT LEAD(e2, 0, e1) OVER () le2e1, IFNULL(e2, e1) ifn_e2e1 FROM t;
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "1.05"
},
"windowing": {
"windows": [
{
"name": "<unnamed window>",
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"lead"
]
}
],
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 8,
"rows_produced_per_join": 8,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.80",
"prefix_cost": "1.05",
"data_read_per_join": "768"
},
"used_columns": [
"e1",
"e2"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select lead(`test`.`t`.`e2`,0,`test`.`t`.`e1`) OVER () AS `le2e1`,ifnull(`test`.`t`.`e2`,`test`.`t`.`e1`) AS `ifn_e2e1` from `test`.`t`
DROP TABLE t;
static wf
EXPLAIN FORMAT=JSON SELECT id, sex, COUNT(*) OVER w cnt, NTILE(3) OVER w `ntile`,
LEAD(id, 1) OVER w le1,
LAG(id, 1) OVER w la1,
LEAD(id, 100) OVER w le100,
LAG(id, 2, 777) OVER w la2 FROM t1
WINDOW w AS (ORDER BY id);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"count",
"ntile",
"lead",
"lag",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,count(0) OVER `w` AS `cnt`,ntile(3) OVER `w` AS `ntile`,lead(`test`.`t1`.`id`,1) OVER `w` AS `le1`,lag(`test`.`t1`.`id`,1) OVER `w` AS `la1`,lead(`test`.`t1`.`id`,100) OVER `w` AS `le100`,lag(`test`.`t1`.`id`,2,777) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` )
EXPLAIN FORMAT=JSON SELECT id, sex, COUNT(*) OVER w cnt, NTH_VALUE(id, 2) OVER w nth,
LEAD(id, 1) OVER w le1,
LAG(id, 1) OVER w la1,
LEAD(id, 100) OVER w le100,
LAG(id, 2, 777) OVER w la2 FROM t1
WINDOW w as (PARTITION BY sex);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"count",
"nth_value",
"lead",
"lag",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,count(0) OVER `w` AS `cnt`,nth_value(`test`.`t1`.`id`,2) OVER `w` AS `nth`,lead(`test`.`t1`.`id`,1) OVER `w` AS `le1`,lag(`test`.`t1`.`id`,1) OVER `w` AS `la1`,lead(`test`.`t1`.`id`,100) OVER `w` AS `le100`,lag(`test`.`t1`.`id`,2,777) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` )
EXPLAIN FORMAT=JSON SELECT id, sex, COUNT(*) OVER w cnt, NTH_VALUE(id, 2) OVER w nth,
LEAD(id, 1) OVER w le1,
LAG(id, 1) OVER w la1,
LEAD(id, 100) OVER w le100,
LAG(id, 2, 777) OVER w la2 FROM t1
WINDOW w as (PARTITION BY id);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"count",
"nth_value",
"lead",
"lag",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,count(0) OVER `w` AS `cnt`,nth_value(`test`.`t1`.`id`,2) OVER `w` AS `nth`,lead(`test`.`t1`.`id`,1) OVER `w` AS `le1`,lag(`test`.`t1`.`id`,1) OVER `w` AS `la1`,lead(`test`.`t1`.`id`,100) OVER `w` AS `le100`,lag(`test`.`t1`.`id`,2,777) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`id` )
unbuffered
EXPLAIN FORMAT=JSON SELECT id, sex, COUNT(*) OVER w cnt,
LEAD(id, 1) OVER w le1,
LAG(id, 1) OVER w la1,
LEAD(id, 100) OVER w le100,
LAG(id, 2, 777) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY ID ROWS UNBOUNDED PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"count",
"lead",
"lag",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`id`,1) OVER `w` AS `le1`,lag(`test`.`t1`.`id`,1) OVER `w` AS `la1`,lead(`test`.`t1`.`id`,100) OVER `w` AS `le100`,lag(`test`.`t1`.`id`,2,777) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`id` ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT id, sex, COUNT(*) OVER w cnt, NTH_VALUE(id, 2) OVER w nth,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY ID RANGE UNBOUNDED PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"count",
"nth_value",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,count(0) OVER `w` AS `cnt`,nth_value(`test`.`t1`.`id`,2) OVER `w` AS `nth`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`id` RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
test unoptimized path: trick: add DOUBLE type w/SUM which is unoptimized by default
ascending
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY d ROWS 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`d`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`d` ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY d RANGE 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`d`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`d` RANGE BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d ROWS 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d ASC ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d ASC ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d RANGE 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` RANGE BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d RANGE BETWEEN 1 FOLLOWING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` RANGE BETWEEN 1 FOLLOWING AND 2 FOLLOWING)
descending
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY d DESC ROWS 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`d` desc"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`d` desc ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY d DESC RANGE 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`d` desc"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`d` desc RANGE BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d DESC ROWS 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d` desc"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` desc ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d DESC ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d` desc"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` desc ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d DESC ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d` desc"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` desc ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d DESC RANGE 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d` desc"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` desc RANGE BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d DESC RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d` desc"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` desc RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY d DESC RANGE BETWEEN 1 FOLLOWING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d` desc"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` desc RANGE BETWEEN 1 FOLLOWING AND 2 FOLLOWING)
Dynamic upper
EXPLAIN FORMAT=JSON SELECT id, sex, COUNT(*) OVER w cnt, NTILE(3) OVER w `ntile`,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1 WINDOW w as (ORDER BY id);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"count",
"ntile",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,`test`.`t1`.`sex` AS `sex`,count(0) OVER `w` AS `cnt`,ntile(3) OVER `w` AS `ntile`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` )
optimized path
ascending
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY id ROWS 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`id` ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY id RANGE 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`id` RANGE BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id ROWS 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id ASC ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id ASC ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id RANGE 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` RANGE BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id RANGE BETWEEN 1 FOLLOWING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` RANGE BETWEEN 1 FOLLOWING AND 2 FOLLOWING)
descending
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY id DESC ROWS 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`id` desc ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (PARTITION BY SEX ORDER BY id DESC RANGE 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`sex`",
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (PARTITION BY `test`.`t1`.`sex` ORDER BY `test`.`t1`.`id` desc RANGE BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id DESC ROWS 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` desc ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id DESC ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` desc ROWS BETWEEN 2 PRECEDING AND 1 PRECEDING)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id DESC ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` desc ROWS BETWEEN 1 FOLLOWING AND 2 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id DESC RANGE 2 PRECEDING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` desc RANGE BETWEEN 2 PRECEDING AND CURRENT ROW)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id DESC RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` desc RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT id, SUM(id) OVER w `sum`, COUNT(*) OVER w cnt, sex,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w as (ORDER BY id DESC RANGE BETWEEN 1 FOLLOWING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id` desc"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"sum",
"count",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"id",
"sex",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`id`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,`test`.`t1`.`sex` AS `sex`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` desc RANGE BETWEEN 1 FOLLOWING AND 2 FOLLOWING)
many nth_value calls on one window, unoptimized path
EXPLAIN FORMAT=JSON SELECT d, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(d, 3) OVER w le3,
FIRST_VALUE(d) OVER w fv,
LEAD(d, 1) OVER w le1,
LEAD(d, 2) OVER w le2,
LAG(d, 2) OVER w la2 FROM t1
WINDOW w AS (ORDER BY d ASC ROWS BETWEEN 2 PRECEDING AND CURRENT ROW);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`d`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"first_value",
"lead",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`d` AS `d`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`d`,3) OVER `w` AS `le3`,first_value(`test`.`t1`.`d`) OVER `w` AS `fv`,lead(`test`.`t1`.`d`,1) OVER `w` AS `le1`,lead(`test`.`t1`.`d`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`d`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`d` ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
many nth_value calls on one window, optimized path
EXPLAIN FORMAT=JSON SELECT id, SUM(d) OVER w `sum`, COUNT(*) OVER w cnt,
LEAD(id, 3) OVER w le3,
FIRST_VALUE(id) OVER w fv,
LEAD(id, 1) OVER w le1,
LEAD(id, 2) OVER w le2,
LAG(id, 2) OVER w la2 FROM t1
WINDOW w AS (ORDER BY id ASC ROWS BETWEEN 2 PRECEDING AND CURRENT ROW);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "10.15"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`id`"
],
"frame_buffer": {
"using_temporary_table": true
},
"functions": [
"sum",
"count",
"lead",
"first_value",
"lead",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "9.00"
},
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows_examined_per_scan": 9,
"rows_produced_per_join": 9,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "0.90",
"prefix_cost": "1.15",
"data_read_per_join": "216"
},
"used_columns": [
"d",
"id",
"n"
]
}
}
}
}
Warnings:
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id`,sum(`test`.`t1`.`d`) OVER `w` AS `sum`,count(0) OVER `w` AS `cnt`,lead(`test`.`t1`.`id`,3) OVER `w` AS `le3`,first_value(`test`.`t1`.`id`) OVER `w` AS `fv`,lead(`test`.`t1`.`id`,1) OVER `w` AS `le1`,lead(`test`.`t1`.`id`,2) OVER `w` AS `le2`,lag(`test`.`t1`.`id`,2) OVER `w` AS `la2` from `test`.`t1` window `w` AS (ORDER BY `test`.`t1`.`id` ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)
DROP TABLE t1;
Check interference with other two pass window functions
CREATE TABLE t(i INT);
INSERT INTO t VALUES (NULL), (1), (2), (3), (3), (4), (5), (6), (6), (7), (8), (9), (10);
ANALYZE TABLE t;
Table Op Msg_type Msg_text
test.t analyze status OK
EXPLAIN FORMAT=JSON SELECT i, PERCENT_RANK() OVER w cd
FROM t WINDOW w AS (ORDER BY i);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "14.55"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`i`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"percent_rank"
]
}
],
"cost_info": {
"sort_cost": "13.00"
},
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 13,
"rows_produced_per_join": 13,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "1.30",
"prefix_cost": "1.55",
"data_read_per_join": "104"
},
"used_columns": [
"i"
]
}
}
}
}
Warnings:
Note 1003 /* select#1 */ select `test`.`t`.`i` AS `i`,percent_rank() OVER `w` AS `cd` from `test`.`t` window `w` AS (ORDER BY `test`.`t`.`i` )
EXPLAIN FORMAT=JSON SELECT i, PERCENT_RANK() OVER w cd FROM t
WINDOW w AS (ORDER BY i ROWS BETWEEN 1 PRECEDING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "14.55"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`i`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"percent_rank"
]
}
],
"cost_info": {
"sort_cost": "13.00"
},
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 13,
"rows_produced_per_join": 13,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "1.30",
"prefix_cost": "1.55",
"data_read_per_join": "104"
},
"used_columns": [
"i"
]
}
}
}
}
Warnings:
Note 3599 Window function 'percent_rank' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t`.`i` AS `i`,percent_rank() OVER `w` AS `cd` from `test`.`t` window `w` AS (ORDER BY `test`.`t`.`i` ROWS BETWEEN 1 PRECEDING AND 2 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT i, PERCENT_RANK() OVER w cd, NTILE(3) OVER w `ntile`, COUNT(*) OVER w cnt, SUM(i) OVER W `sum` FROM t
WINDOW w AS (ORDER BY i ROWS BETWEEN 1 PRECEDING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "14.55"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`i`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"percent_rank",
"ntile",
"count",
"sum"
]
}
],
"cost_info": {
"sort_cost": "13.00"
},
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 13,
"rows_produced_per_join": 13,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "1.30",
"prefix_cost": "1.55",
"data_read_per_join": "104"
},
"used_columns": [
"i"
]
}
}
}
}
Warnings:
Note 3599 Window function 'percent_rank' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'ntile' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t`.`i` AS `i`,percent_rank() OVER `w` AS `cd`,ntile(3) OVER `w` AS `ntile`,count(0) OVER `w` AS `cnt`,sum(`test`.`t`.`i`) OVER `w` AS `sum` from `test`.`t` window `w` AS (ORDER BY `test`.`t`.`i` ROWS BETWEEN 1 PRECEDING AND 2 FOLLOWING)
EXPLAIN FORMAT=JSON SELECT i, PERCENT_RANK() OVER w cd, NTILE(3) OVER w `ntile`, COUNT(*) OVER w cnt, SUM(i) OVER W `sum`,
LEAD(i,2) OVER w le2,
LAG(i) OVER w la FROM t
WINDOW w AS (ORDER BY i ROWS BETWEEN 1 PRECEDING AND 2 FOLLOWING);
EXPLAIN
{
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "14.55"
},
"windowing": {
"windows": [
{
"name": "w",
"using_filesort": true,
"filesort_key": [
"`i`"
],
"frame_buffer": {
"using_temporary_table": true,
"optimized_frame_evaluation": true
},
"functions": [
"percent_rank",
"ntile",
"count",
"sum",
"lead",
"lag"
]
}
],
"cost_info": {
"sort_cost": "13.00"
},
"table": {
"table_name": "t",
"access_type": "ALL",
"rows_examined_per_scan": 13,
"rows_produced_per_join": 13,
"filtered": "100.00",
"cost_info": {
"read_cost": "0.25",
"eval_cost": "1.30",
"prefix_cost": "1.55",
"data_read_per_join": "104"
},
"used_columns": [
"i"
]
}
}
}
}
Warnings:
Note 3599 Window function 'percent_rank' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'ntile' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lead' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 3599 Window function 'lag' ignores the frame clause of window 'w' and aggregates over the whole partition
Note 1003 /* select#1 */ select `test`.`t`.`i` AS `i`,percent_rank() OVER `w` AS `cd`,ntile(3) OVER `w` AS `ntile`,count(0) OVER `w` AS `cnt`,sum(`test`.`t`.`i`) OVER `w` AS `sum`,lead(`test`.`t`.`i`,2) OVER `w` AS `le2`,lag(`test`.`t`.`i`) OVER `w` AS `la` from `test`.`t` window `w` AS (ORDER BY `test`.`t`.`i` ROWS BETWEEN 1 PRECEDING AND 2 FOLLOWING)
DROP TABLE t;