作者:万昆 日期:20130605
- 准备表和测试数据
-
建表
create table group_test (group_id int, job string, name string, salary int);
-
准备数据文件
10 Coding Bruce 1000
10 Programmer Clair 1000
10 Architect Gideon 1000
10 Director Hill 1000
20 Coding Jason 2000
20 Programmer Joey 2000
20 Architect Martin 2000
20 Director Michael 2000
30 Coding Rebecca 3000
30 Programmer Rex 3000
30 Architect Richard 3000
30 Director Sabrina 3000
40 Coding Samuel 4000
40 Programmer Susy 4000
40 Architect Tina 4000
40 Director Wendy 4000
保存文件为/tmp/g.txt
-
加载数据
load data local inpath '/tmp/g.txt' into table group_test;
-
传统函数测试
select * from group_test;
select group_id,job,sum(salary) from group_test group by group_id,job;
select group_id,sum(salary) from group_test group by group_id;
- 函数测试及结果
-
Cube功能测试
select group_id,job,sum(salary) from group_test group by group_id, job with cube ; -- with cube功能
测试结果:
NULL NULL 40000
NULL Architect 10000
NULL Coding 10000
NULL Director 10000
NULL Programmer 10000
10 NULL 4000
10 Architect 1000
10 Coding 1000
10 Director 1000
10 Programmer 1000
20 NULL 8000
20 Architect 2000
20 Coding 2000
20 Director 2000
20 Programmer 2000
30 NULL 12000
30 Architect 3000
30 Coding 3000
30 Director 3000
30 Programmer 3000
40 NULL 16000
40 Architect 4000
40 Coding 4000
40 Director 4000
40 Programmer 4000
-
Rullup测试
select group_id,job,sum(salary) from group_test group by group_id, job with rollup ;
测试结果
NULL NULL 40000
10 NULL 4000
10 Architect 1000
10 Coding 1000
10 Director 1000
10 Programmer 1000
20 NULL 8000
20 Architect 2000
20 Coding 2000
20 Director 2000
20 Programmer 2000
30 NULL 12000
30 Architect 3000
30 Coding 3000
30 Director 3000
30 Programmer 3000
40 NULL 16000
40 Architect 4000
40 Coding 4000
40 Director 4000
40 Programmer 4000