mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 20:36:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			145 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
create table t1 (
 | 
						|
pk int primary key,
 | 
						|
a int,
 | 
						|
b int,
 | 
						|
c char(10),
 | 
						|
d decimal(10, 3),
 | 
						|
e real
 | 
						|
);
 | 
						|
insert into t1 values
 | 
						|
( 1, 0, 1,    'one',    0.1,  0.001),
 | 
						|
( 2, 0, 2,    'two',    0.2,  0.002),
 | 
						|
( 3, 0, 3,    'three',  0.3,  0.003),
 | 
						|
( 4, 1, 2,    'three',  0.4,  0.004),
 | 
						|
( 5, 1, 1,    'two',    0.5,  0.005),
 | 
						|
( 6, 1, 1,    'one',    0.6,  0.006),
 | 
						|
( 7, 2, NULL, 'n_one',  0.5,  0.007),
 | 
						|
( 8, 2, 1,    'n_two',  NULL, 0.008),
 | 
						|
( 9, 2, 2,    NULL,     0.7,  0.009),
 | 
						|
(10, 2, 0,    'n_four', 0.8,  0.010),
 | 
						|
(11, 2, 10,   NULL,     0.9,  NULL);
 | 
						|
select pk, row_number() over () from t1;
 | 
						|
pk	row_number() over ()
 | 
						|
1	1
 | 
						|
2	2
 | 
						|
3	3
 | 
						|
4	4
 | 
						|
5	5
 | 
						|
6	6
 | 
						|
7	7
 | 
						|
8	8
 | 
						|
9	9
 | 
						|
10	10
 | 
						|
11	11
 | 
						|
explain FORMAT=JSON select pk, row_number() over () from t1;
 | 
						|
EXPLAIN
 | 
						|
{
 | 
						|
  "query_block": {
 | 
						|
    "select_id": 1,
 | 
						|
    "window_functions_computation": {
 | 
						|
      "sorts": {
 | 
						|
        "filesort": {
 | 
						|
          "sort_key": "pk"
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "temporary_table": {
 | 
						|
        "table": {
 | 
						|
          "table_name": "t1",
 | 
						|
          "access_type": "index",
 | 
						|
          "key": "PRIMARY",
 | 
						|
          "key_length": "4",
 | 
						|
          "used_key_parts": ["pk"],
 | 
						|
          "rows": 11,
 | 
						|
          "filtered": 100,
 | 
						|
          "using_index": true
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
explain FORMAT=JSON select row_number() over (), pk from t1;
 | 
						|
EXPLAIN
 | 
						|
{
 | 
						|
  "query_block": {
 | 
						|
    "select_id": 1,
 | 
						|
    "window_functions_computation": {
 | 
						|
      "sorts": {
 | 
						|
        "filesort": {
 | 
						|
          "sort_key": "`row_number() over ()`"
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "temporary_table": {
 | 
						|
        "table": {
 | 
						|
          "table_name": "t1",
 | 
						|
          "access_type": "index",
 | 
						|
          "key": "PRIMARY",
 | 
						|
          "key_length": "4",
 | 
						|
          "used_key_parts": ["pk"],
 | 
						|
          "rows": 11,
 | 
						|
          "filtered": 100,
 | 
						|
          "using_index": true
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
select row_number() over () from (select 4) as t;
 | 
						|
row_number() over ()
 | 
						|
1
 | 
						|
select min(a) over (), max(a) over (), a, row_number() over ()
 | 
						|
from t1
 | 
						|
where a = 0;
 | 
						|
min(a) over ()	max(a) over ()	a	row_number() over ()
 | 
						|
0	0	0	1
 | 
						|
0	0	0	2
 | 
						|
0	0	0	3
 | 
						|
select a, min(a) over (), max(a) over (), row_number() over ()
 | 
						|
from t1
 | 
						|
where a = 0;
 | 
						|
a	min(a) over ()	max(a) over ()	row_number() over ()
 | 
						|
0	0	0	1
 | 
						|
0	0	0	2
 | 
						|
0	0	0	3
 | 
						|
select min(a) over () + 1, max(a) over (), row_number() over ()
 | 
						|
from t1
 | 
						|
where a = 0;
 | 
						|
min(a) over () + 1	max(a) over ()	row_number() over ()
 | 
						|
1	0	1
 | 
						|
1	0	2
 | 
						|
1	0	3
 | 
						|
select min(a) over () + a, max(a) over (), row_number() over ()
 | 
						|
from t1
 | 
						|
where a = 1;
 | 
						|
min(a) over () + a	max(a) over ()	row_number() over ()
 | 
						|
2	1	1
 | 
						|
2	1	2
 | 
						|
2	1	3
 | 
						|
select a + min(a) over (), max(a) over (), row_number() over ()
 | 
						|
from t1
 | 
						|
where a = 1;
 | 
						|
a + min(a) over ()	max(a) over ()	row_number() over ()
 | 
						|
2	1	1
 | 
						|
2	1	2
 | 
						|
2	1	3
 | 
						|
select a + min(a) over () from t1 where a = 1;
 | 
						|
a + min(a) over ()
 | 
						|
2
 | 
						|
2
 | 
						|
2
 | 
						|
create view win_view
 | 
						|
as (select a, min(a) over () from t1 where a = 1);
 | 
						|
select * from win_view;
 | 
						|
a	min(a) over ()
 | 
						|
1	1
 | 
						|
1	1
 | 
						|
1	1
 | 
						|
drop view win_view;
 | 
						|
create view win_view
 | 
						|
as (select a, max(a + 1) over () from t1 where a = 1);
 | 
						|
select * from win_view;
 | 
						|
a	max(a + 1) over ()
 | 
						|
1	2
 | 
						|
1	2
 | 
						|
1	2
 | 
						|
drop view win_view;
 | 
						|
drop table t1;
 |