Hive开窗函数测试-cube,rollup

作者:万昆 日期:20130605

     

  1. 准备表和测试数据
  2. 建表

    create table group_test (group_id int, job string, name string, salary int);

         

  3. 准备数据文件

         

    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

  4. 加载数据

    load data local inpath '/tmp/g.txt' into table group_test;

         

  5. 传统函数测试

    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;

         

  6. 函数测试及结果
  7. 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

     

  1. 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

猜你喜欢

转载自wankunde.iteye.com/blog/1879565