mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
OLAP functionality plus some small bug fixes
This commit is contained in:
138
mysql-test/r/olap.result
Normal file
138
mysql-test/r/olap.result
Normal file
@ -0,0 +1,138 @@
|
||||
drop table if exists sales;
|
||||
create table sales ( product varchar(32), country varchar(32), year int, profit int);
|
||||
insert into sales values ( 'Computer', 'India',2000, 1200),
|
||||
( 'TV', 'United States', 1999, 150),
|
||||
( 'Calculator', 'United States', 1999,50),
|
||||
( 'Computer', 'United States', 1999,1500),
|
||||
( 'Computer', 'United States', 2000,1500),
|
||||
( 'TV', 'United States', 2000, 150),
|
||||
( 'TV', 'India', 2000, 100),
|
||||
( 'TV', 'India', 2000, 100),
|
||||
( 'Calculator', 'United States', 2000,75),
|
||||
( 'Calculator', 'India', 2000,75),
|
||||
( 'TV', 'India', 1999, 100),
|
||||
( 'Computer', 'India', 1999,1200),
|
||||
( 'Computer', 'United States', 2000,1500),
|
||||
( 'Calculator', 'United States', 2000,75);
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with cube;
|
||||
product country year sum(profit)
|
||||
Calculator India 2000 75
|
||||
Calculator United States 1999 50
|
||||
Calculator United States 2000 150
|
||||
Computer India 1999 1200
|
||||
Computer India 2000 1200
|
||||
Computer United States 1999 1500
|
||||
Computer United States 2000 3000
|
||||
TV India 1999 100
|
||||
TV India 2000 200
|
||||
TV United States 1999 150
|
||||
TV United States 2000 150
|
||||
Calculator India 0 75
|
||||
Calculator United States 0 200
|
||||
Computer India 0 2400
|
||||
Computer United States 0 4500
|
||||
TV India 0 300
|
||||
TV United States 0 300
|
||||
Calculator ALL 1999 50
|
||||
Calculator ALL 2000 225
|
||||
Computer ALL 1999 2700
|
||||
Computer ALL 2000 4200
|
||||
TV ALL 1999 250
|
||||
TV ALL 2000 350
|
||||
ALL India 1999 1300
|
||||
ALL India 2000 1475
|
||||
ALL United States 1999 1700
|
||||
ALL United States 2000 3300
|
||||
Calculator ALL 0 275
|
||||
Computer ALL 0 6900
|
||||
TV ALL 0 600
|
||||
ALL India 0 2775
|
||||
ALL United States 0 5000
|
||||
ALL ALL 1999 3000
|
||||
ALL ALL 2000 4775
|
||||
ALL ALL 0 7775
|
||||
explain select product, country , year, sum(profit) from sales group by product, country, year with cube;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
product country year sum(profit)
|
||||
Calculator India 2000 75
|
||||
Calculator United States 1999 50
|
||||
Calculator United States 2000 150
|
||||
Computer India 1999 1200
|
||||
Computer India 2000 1200
|
||||
Computer United States 1999 1500
|
||||
Computer United States 2000 3000
|
||||
TV India 1999 100
|
||||
TV India 2000 200
|
||||
TV United States 1999 150
|
||||
TV United States 2000 150
|
||||
ALL India 1999 1300
|
||||
ALL India 2000 1475
|
||||
ALL United States 1999 1700
|
||||
ALL United States 2000 3300
|
||||
ALL ALL 1999 3000
|
||||
ALL ALL 2000 4775
|
||||
ALL ALL 0 7775
|
||||
explain select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
table type possible_keys key key_len ref rows Extra
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14 Using temporary; Using filesort
|
||||
sales ALL NULL NULL NULL NULL 14
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with cube union all select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
product country year sum(profit)
|
||||
Calculator India 2000 75
|
||||
Calculator United States 1999 50
|
||||
Calculator United States 2000 150
|
||||
Computer India 1999 1200
|
||||
Computer India 2000 1200
|
||||
Computer United States 1999 1500
|
||||
Computer United States 2000 3000
|
||||
TV India 1999 100
|
||||
TV India 2000 200
|
||||
TV United States 1999 150
|
||||
TV United States 2000 150
|
||||
Calculator India 0 75
|
||||
Calculator United States 0 200
|
||||
Computer India 0 2400
|
||||
Computer United States 0 4500
|
||||
TV India 0 300
|
||||
TV United States 0 300
|
||||
Calculator ALL 1999 50
|
||||
Calculator ALL 2000 225
|
||||
Computer ALL 1999 2700
|
||||
Computer ALL 2000 4200
|
||||
TV ALL 1999 250
|
||||
TV ALL 2000 350
|
||||
ALL India 1999 1300
|
||||
ALL India 2000 1475
|
||||
ALL United States 1999 1700
|
||||
ALL United States 2000 3300
|
||||
Calculator ALL 0 275
|
||||
Computer ALL 0 6900
|
||||
TV ALL 0 600
|
||||
ALL India 0 2775
|
||||
ALL United States 0 5000
|
||||
ALL ALL 1999 3000
|
||||
ALL ALL 2000 4775
|
||||
ALL ALL 0 7775
|
||||
Calculator India 2000 75
|
||||
Calculator United States 1999 50
|
||||
Calculator United States 2000 150
|
||||
Computer India 1999 1200
|
||||
Computer India 2000 1200
|
||||
Computer United States 1999 1500
|
||||
Computer United States 2000 3000
|
||||
TV India 1999 100
|
||||
TV India 2000 200
|
||||
TV United States 1999 150
|
||||
TV United States 2000 150
|
||||
drop table sales;
|
22
mysql-test/t/olap.test
Normal file
22
mysql-test/t/olap.test
Normal file
@ -0,0 +1,22 @@
|
||||
drop table if exists sales;
|
||||
create table sales ( product varchar(32), country varchar(32), year int, profit int);
|
||||
insert into sales values ( 'Computer', 'India',2000, 1200),
|
||||
( 'TV', 'United States', 1999, 150),
|
||||
( 'Calculator', 'United States', 1999,50),
|
||||
( 'Computer', 'United States', 1999,1500),
|
||||
( 'Computer', 'United States', 2000,1500),
|
||||
( 'TV', 'United States', 2000, 150),
|
||||
( 'TV', 'India', 2000, 100),
|
||||
( 'TV', 'India', 2000, 100),
|
||||
( 'Calculator', 'United States', 2000,75),
|
||||
( 'Calculator', 'India', 2000,75),
|
||||
( 'TV', 'India', 1999, 100),
|
||||
( 'Computer', 'India', 1999,1200),
|
||||
( 'Computer', 'United States', 2000,1500),
|
||||
( 'Calculator', 'United States', 2000,75);
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with cube;
|
||||
explain select product, country , year, sum(profit) from sales group by product, country, year with cube;
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
explain select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
select product, country , year, sum(profit) from sales group by product, country, year with cube union all select product, country , year, sum(profit) from sales group by product, country, year with rollup;
|
||||
drop table sales;
|
Reference in New Issue
Block a user